C# installutil与windows服务一起安装,然后立即卸载自定义windows服务
我有一个用c#编写的自定义windows服务,需要安装和调试。当我使用C# installutil与windows服务一起安装,然后立即卸载自定义windows服务,c#,visual-studio,windows-services,installation,installutil,C#,Visual Studio,Windows Services,Installation,Installutil,我有一个用c#编写的自定义windows服务,需要安装和调试。当我使用 installutil "[path].exe" 从命令行,然后尝试搜索该服务,它不会出现在任何位置的已安装服务列表中。查看安装日志文件,我看到以下内容: Installing assembly 'myservice'. Affected parameters are: logtoconsole = assemblypath = mypath logfile = mylogfile
installutil "[path].exe"
从命令行,然后尝试搜索该服务,它不会出现在任何位置的已安装服务列表中。查看安装日志文件,我看到以下内容:
Installing assembly 'myservice'.
Affected parameters are:
logtoconsole =
assemblypath = mypath
logfile = mylogfile
Installing service MyService
Service MyService has been successfully installed.
Creating EventLog source MyService in log Application...
Committing assembly 'myservice'.
Affected parameters are:
logtoconsole =
assemblypath = myservice
logfile = pathtoinstalllog
Uninstalling assembly myservice
Affected parameters are:
logtoconsole =
assemblypath = myservice
logfile = pathtoinstalllog
Removing EventLog source myservice.
Service myservice is being removed from the system...
Service myservice was successfully removed from the system.
Uninstalling assembly myservice'.
Affected parameters are:
logtoconsole =
assemblypath = myservice
logfile = pathtoinstalllog
Removing EventLog source myservice.
Service myservice is being removed from the system...
Service myservice was successfully removed from the system.
(名称path、myservice、pathtoinstalllog等代替公司详细信息)
不管怎样,从日志文件看,服务似乎正在安装,然后立即卸载
如果需要更多的代码或信息,请告诉我,并提前感谢。根据我们的讨论总结一下
- 对服务主输出(bin/debug/assembly.exe)使用“
InstallUtil完整路径”。通常,如果出现错误,InstallUtil“执行回滚”(因此请注意错误)-看起来是这样,但您的日志没有说明-因此我猜您的“myservice”的路径是错误的(同时选择正确的InstallUtil版本、.NET framework和32/64)
- 对于安全性/帐户问题-
运行InstallUtil>(“以管理员身份运行”,命令提示符等)(如果需要进行其他调试,请尝试为服务帐户指定不同的用户/类型,检查安装程序类的详细信息,以及RunInstaller属性等)
希望这有帮助您是否应该指定标志
-i
来告诉它安装呢?日志文件中是否有错误???这是installlog文件中的完整日志。还要检查你的代码是否没有导致卸载哦,我想那是默认值。。无论哪种方式,它都没有改变任何内容:\n服务主输出(bin/debug/assembly.exe)的完整路径。通常,如果出现错误,它会“执行回滚”-看起来是这样,但您的日志没有显示-所以我猜您的“myservice”是错误路径或其他原因。在C#installer类中你有什么?您用来登录等的用户…不应该,但取决于您如何构建/设置。无论如何,对于帐户问题-“以管理员身份运行”(命令提示符等)和要使用的服务(直到您解决问题为止)-让它“弹出”并使用一些管理员帐户名-UNC路径“.\User”或其他名称。InstallUtil可能会出现很多问题(这是我发现的最安全的方法,但一旦您知道如何使用它),请使用正确的32/64版本(以及正确的InstallUtil.NET版本路径)等,并注意错误。最后一个问题-我正在使用系统用户提供服务。这样行吗?如果不行,我如何更改它?编辑:没关系,我在安装程序代码中找到了它。第一个问题仍然存在,但是lolyes,在安装程序中-我不会使用'system'帐户(我猜你说的是LocalSystem)<代码>如果完成任务,首选项总是与“特权最低”的选项一起使用,通常是“ServiceAccount.LocalService”
。浏览一下“System.ServiceProcess.ServiceAccount”的描述,它会介绍其中的每一个。理想情况下,为了进行适当的安全设置(并能够在以后进行微管理和控制)如果可以,请设置一个单独的用户(用于服务或类似服务的“类别”),并为其提供“刚好足够”的特权
。但这更多的是一个“安全”问题:)-或者这个链接