代码之家  ›  专栏  ›  技术社区  ›  Justin C

在Windows 7上安装C Windows服务

  •  7
  • Justin C  · 技术社区  · 14 年前

    我有一个批处理文件,我用它来安装我的C Windows服务已经有一段时间了,直到Windows7才出现问题。我试图以管理员权限运行批处理文件。我尝试使用管理员权限运行命令提示符,导航到Windows服务exe并在那里运行installUtil。还是不行。

    在阅读了其他一些建议之后,我尝试将文件移出/bin文件夹并从其他位置运行它们,但这也不起作用。

    批处理文件如下

    @ECHO OFF
    
    REM The following directory is for .NET 2.0
    set DOTNETFX2=%SystemRoot%\Microsoft.NET\Framework\v2.0.50727
    set PATH=%PATH%;%DOTNETFX2%
    
    echo Installing IEPPAMS Win Service...
    echo ---------------------------------------------------
    InstallUtil /i IEPPAMS_WinService1.exe
    echo ---------------------------------------------------
    echo Done.
    

    我有一个安装日志文件,可以将信息转储到其中。如果我双击.bat文件

    运行事务处理安装。

    开始的安装阶段 安装。查看的内容 的日志文件 C:\users\justin\desktop\service服务 测试\ieppams_winservice1.exe 程序集的进度。文件是 位于 C:\users\justin\desktop\service服务 测试\ieppams_winservice1.installLog。

    在 安装阶段。 System.InvalidOperationException:无效操作异常: 无法打开上的服务控制管理器 电脑。此操作可能 需要其他特权。内部 例外 System.ComponentModel.win32异常 引发了以下错误 消息:访问被拒绝。

    安装的回滚阶段 开始了。查看的内容 的日志文件 C:\users\justin\desktop\service服务 测试\ieppams_winservice1.exe 程序集的进度。文件是 位于 C:\users\justin\desktop\service服务 测试\ieppams_winservice1.installLog。

    回滚阶段已完成 成功地。

    已完成事务处理安装。

    当我以管理员权限运行.bat文件时,日志文件中不会写入任何内容,并且该服务仍然没有安装。

    有什么想法吗?在Windows7中是否有安装服务的新方法?

    3 回复  |  直到 14 年前
        1
  •  11
  •   Matthew Whited    14 年前

    右键单击批处理文件并以管理员身份运行它。

    您很可能会与WindowsVista和Windows7的新安全模型(用户帐户控制)发生冲突。即使您以具有管理权限的帐户身份运行,您仍需要提升以执行某些(大多数)管理活动。(可以禁用此功能,但不能禁用)

    编辑… 正确的命令行是 InstallUtil YourApp.exe . 这个 /i 不是一个有效的开关 InstallUtil .

        2
  •  8
  •   Justin C    14 年前

    所以我可以通过在命令行中键入installUtil的整个路径来解决这个问题,而且它工作正常。因此,在导航到包含exe的文件夹后,我键入了以下内容:

    C:\windows\microsoft.net\framework\v4.0.21006\installUtil.exe IEPPAMS_WinService1.exe

    不知道为什么我现在必须在Windows7中这样做,而我从来没有在XP中这样做过,但是哦,好吧。谢谢你的建议!

        3
  •  3
  •   Serapth    14 年前

    当我以管理员权限运行.bat文件时,日志文件中不会写入任何内容,并且该服务仍然没有安装。

    首先,您必须以管理员权限运行。

    其次,当您“以管理员身份运行”时,它实际上会将目录更改为c:\windows\system32作为初始目录(不知道为什么),这可能解释了为什么以管理员身份运行不会导致日志文件。手动更改到ieppams_winservice1.exe的路径,该路径位于脚本的开头。