安装Windows服务时的凭证
我正在尝试使用VisualStudio.Net部署项目安装C#windows服务项目。
要运行部署项目,请右键单击并从上下文菜单中select“安装”,然后运行安装向导,并最终提示我input要求input用户名和密码的“设置服务login”对话框。
当我从命令行使用sc实用程序安装服务时,我不必提供凭据。
我必须为此服务创buildlogin吗? 我更喜欢使用“本地系统”或“networking服务”(不知道与其他服务有什么不同)。
将此代码添加到您的Windows服务项目的projectInstaller.Designer.cs
文件中的私有无效InitializeComponent()
方法。
this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalSystem;
如果你的进程安装程序的定义是:
private System.ServiceProcess.ServiceProcessInstaller serviceProcessInstaller1;
检查此链接: http : //msdn.microsoft.com/en-us/library/zt39148a(v=vs.110).aspx
请注意本节: 为您的服务创build安装程序
对ServiceProcessInstaller进行更改:
在devise器中,为Visual Basic项目单击ServiceProcessInstaller1,或为Visual C#项目单击serviceProcessInstaller1。 将帐户属性设置为LocalSystem。 这将导致服务被安装并在本地服务帐户上运行。
在包含该服务的项目中,添加一个安装程序类。 让它看起来像这样:
[RunInstaller(true)] public class MyServiceInstaller : Installer { public MyServiceInstaller() { ServiceProcessInstaller serviceProcessInstaller = new ServiceProcessInstaller(); serviceProcessInstaller.Account = ServiceAccount.LocalSystem; // Or whatever account you want var serviceInstaller = new ServiceInstaller { DisplayName = "Insert the display name here", StartType = ServiceStartMode.Automatic, // Or whatever startup type you want Description = "Insert a description for your service here", ServiceName = "Insert the service name here" }; Installers.Add(_serviceProcessInstaller); Installers.Add(serviceInstaller); } public override void Commit(IDictionary savedState) { base.Commit(savedState); // This will automatically start your service upon completion of the installation. try { var serviceController = new ServiceController("Insert the service name here"); serviceController.Start(); } catch { MessageBox.Show( "Insert a message stating that the service couldn't be started, and that the user will have to do it manually"); } } }
然后,在解决scheme资源pipe理器中,右键单击部署项目,然后select“查看>自定义操作”。 右键单击自定义操作,然后select“添加自定义操作…”select应用程序文件夹并select包含该服务的项目的主要输出。 现在,自定义操作(上面的Commit
)将在安装后执行。 如果您需要其他自定义操作,则可以添加其他方法( Install
, Rollback
, Uninstall
)。
- 打开你的ProjectInstaller
- 右键单击ProcessInstaller并select属性
- 从“帐户”下拉菜单中的“其他”下,select希望服务运行的帐户
有关不同帐户及其权限的详细信息,请参阅以下链接:
http://msdn.microsoft.com/en-us/library/system.serviceprocess.serviceaccount.aspx
- Node.js不能识别系统path?
- 应用程序不能通过TestFlight安装:已注册的最大设备数量
- 当试图安装Rails 3.0.3时,PATH中不安全的可写dir / usr / local
- Windows 7上的Android Studio安装失败,找不到JDK
- 无法在Windows上安装Aptana Studio 3.6
- 错误:无法在Android Studio中定位SDK中的adb
- 如何安装MySQLdb包? (ImportError:没有名为setuptools的模块)
- 在Windows 7上安装Visual Studio 2013
- 如何编译/安装node.js(不能configurationcxx编译器!)(Ubuntu)。