none
Windows Service安装出现错误 RRS feed

  • 问题

  • 我建了一个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中文版.

    2010年6月10日 3:01

全部回复

  • 你是管理员账号执行安装的吗?另外为什么不在Visual Studio 命令行下去执行安装呢?

    2010年6月10日 5:08
  • 在Visual Studio里怎么执行安装啊!结果应该和命令提示符的结果一样.
    2010年6月10日 5:26
  • 用管理员身份运行 cmd.exe 然后再次尝试 installutil,这个问题多半是因为 UAC 导致的。

    您的系统看上去像是 Windows Vista 或者 Windows 7,所以需要管理员身份运行它。


    Mark Zhou
    2010年6月10日 10:00
  • 你好!    我认为也是权限的问题,建议把UAC关系再次尝试安装!你检查一下相关的问题
    周雪峰
    2010年6月10日 10:56
    版主
  • windows7 下可以通过 vs2008下的Visual Studio Tools,右键Visual Studio 2008 Command Prompt --- run as administrator --- 就可以installutil。
    2011年7月7日 8:05
  • 我刚刚遇到了类似的问题,我把注册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”即可正确安装。

    希望能对你的问题有所帮助。

    2013年10月22日 1:36
  • 最近也刚学了服务程序,安装时也出现了两个问题:

    一个就是 Windows 7 权限问题,必须以管理员身份运行;

    第二个就是服务程序的路径问题,如果路径中包含空格,那么执行 InstallUtil 时,服务程序所在的路径需要用 包含在 “” 中。

    2013年12月4日 4:34