在Windows 7上安装C#Windows服务

时间:2010-08-31 18:54:33

标签: c# .net windows-7 windows-services

我有一个批处理文件,我一直用来安装我的C#Windows服务一段时间,直到Windows 7才出现问题。我试图以管理员权限运行批处理文件。我试图使用admin privs运行命令提示符,导航到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 \用户贾斯汀\桌面\服务   测试\ IEPPAMS_WinService1.exe   大会的进展。该文件是   位于   C:\ Users \用户贾斯汀\桌面\服务   测试\ IEPPAMS_WinService1.InstallLog。

     

期间发生了异常   安装阶段。   System.InvalidOperationException:   无法打开服务控制管理器   电脑 '。'。这个操作可能会   需要其他特权。内心的   例外   System.ComponentModel.Win32Exception   被抛出以下错误   消息:访问被拒绝。

     

安装的回滚阶段   正在开始。看到的内容   日志文件   C:\ Users \用户贾斯汀\桌面\服务   测试\ IEPPAMS_WinService1.exe   大会的进展。该文件是   位于   C:\ Users \用户贾斯汀\桌面\服务   测试\ IEPPAMS_WinService1.InstallLog。

     

回滚阶段已完成   成功。

     

已完成交易安装。

当我使用admin权限运行.bat文件时,没有任何内容写入日志文件,并且仍然没有安装该服务。

有什么想法?有没有新的方法在Windows 7中安装服务?

3 个答案:

答案 0 :(得分:11)

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

您最有可能与Windows Vista和Windows 7中的新安全模型(用户帐户控制)发生争执。即使您作为具有管理员权限的帐户运行,您仍需要提升以执行某些操作(大多数情况下) )行政活动。 (是的,可以禁用此功能,但不能)

编辑... 正确的命令行是InstallUtil YourApp.exe/i看起来不是InstallUtil的虚拟开关。

答案 1 :(得分:8)

所以我能够通过在命令行中输入InstallUtil的整个路径来解决问题,并且它能够正常工作。因此,在导航到具有我的EXE的文件夹后,我输入了以下内容:

  

C:\的Windows \ Microsoft.NET \框架\ v4.0.21006 \ installutil.exe   IEPPAMS_WinService1.exe

不知道为什么我现在必须在Windows 7中这样做,因为我从来不需要在XP中,但是哦。感谢您的所有建议!

答案 2 :(得分:3)

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

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

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