询问者
Windows Service安装出现错误

问题
-
我建了一个Windows Service项目,然后添加了一个安装程序,将serviceInstaller1的StartType的属性改为Automatic,将serviceProcessInstaller1的Account属性改为LocalSystem.
之后我把C:\Windows\Microsoft.NET\Framework\v4.0.30319下的InstallUtil.exe拷到我程序的C:\Users\wangzhigang\Documents\Visual Studio 2010\Projects\WindowsService\WindowsService\bin\Debug所在目录下,在命令提示符中进到项目目标下执行installutil WindowsService.exe
显示
正在运行事务处理安装。
正在开始安装的“安装”阶段。
查看日志文件的内容以获得 C:\Users\wangzhigang\Documents\Visual Studio 2010\Proje
cts\WindowsService\WindowsService\bin\Debug\WindowsService.exe 程序集的进度。
该文件位于 C:\Users\wangzhigang\Documents\Visual Studio 2010\Projects\WindowsSer
vice\WindowsService\bin\Debug\WindowsService.InstallLog。
正在安装程序集“C:\Users\wangzhigang\Documents\Visual Studio 2010\Projects\Windo
wsService\WindowsService\bin\Debug\WindowsService.exe”。
受影响的参数是:
logtoconsole =
logfile = C:\Users\wangzhigang\Documents\Visual Studio 2010\Projects\WindowsS
ervice\WindowsService\bin\Debug\WindowsService.InstallLog
assemblypath = C:\Users\wangzhigang\Documents\Visual Studio 2010\Projects\Win
dowsService\WindowsService\bin\Debug\WindowsService.exe
正在安装服务 Service1...
正在日志 Application 中创建 EventLog 源 Service1...在“安装”阶段发生异常。
System.Security.SecurityException: 未找到源,但未能搜索某些或全部事件日志。不可
访问的日志: Security。正在开始安装的“回滚”阶段。
查看日志文件的内容以获得 C:\Users\wangzhigang\Documents\Visual Studio 2010\Proje
cts\WindowsService\WindowsService\bin\Debug\WindowsService.exe 程序集的进度。
该文件位于 C:\Users\wangzhigang\Documents\Visual Studio 2010\Projects\WindowsSer
vice\WindowsService\bin\Debug\WindowsService.InstallLog。
正在回滚程序集“C:\Users\wangzhigang\Documents\Visual Studio 2010\Projects\Windo
wsService\WindowsService\bin\Debug\WindowsService.exe”。
受影响的参数是:
logtoconsole =
logfile = C:\Users\wangzhigang\Documents\Visual Studio 2010\Projects\WindowsS
ervice\WindowsService\bin\Debug\WindowsService.InstallLog
assemblypath = C:\Users\wangzhigang\Documents\Visual Studio 2010\Projects\Win
dowsService\WindowsService\bin\Debug\WindowsService.exe
正在将事件日志还原到源 Service1 的前一状态。
在 System.Diagnostics.EventLogInstaller 安装程序的“回滚”阶段发生异常。
System.Security.SecurityException: 未找到源,但未能搜索某些或全部事件日志。不可
访问的日志: Security。
在安装的“回滚”阶段发生异常。将忽略该异常并继续回滚。但是,在完成回滚后计算机可
能无法完全还原到它的初始状态。“回滚”阶段已成功完成。
已完成事务处理安装。
安装失败,已执行回滚。这是什么原因啊,我用的操作系统是Win7,vs2010中文版.
- 已更改类型 ThankfulHeartModerator 2013年12月17日 8:54 是问题并非讨论
全部回复
-
我刚刚遇到了类似的问题,我把注册windows服务所用的命令写到了bat可执行文件(名称为注册服务.bat)中,如下所示:
%SYSTEMROOT%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe MyFirstService.exe
当我双击此bat文件后,在安装日志文件InstallUtil.InstallLog中,会提示以下信息:
在“安装”阶段发生异常。
System.Security.SecurityException: 未找到源,但未能搜索某些或全部事件日志。不可访问的日志: Security。但当我在此bat文件上右键选择“以管理员身份运行”时,日志文件InstallUtil.InstallLog中没有任何记录。
所以,后来我尝试了以下方法:
(1)以管理员身份运行CMD;
(2)而后将CMD中的路径调整到bat文件所在路径下,比如路径为“D:\Debug”。
(3)而后在CMD中输入“注册服务.bat”即可正确安装。
希望能对你的问题有所帮助。
- 已建议为答案 ThankfulHeartModerator 2013年12月17日 8:55
-
最近也刚学了服务程序,安装时也出现了两个问题:
一个就是 Windows 7 权限问题,必须以管理员身份运行;
第二个就是服务程序的路径问题,如果路径中包含空格,那么执行 InstallUtil 时,服务程序所在的路径需要用 包含在 “” 中。
- 已建议为答案 ThankfulHeartModerator 2013年12月17日 8:55