2010-08-31 212 views
7

我有一个批处理文件,我一直用它来安装我的C#Windows服务一段时间,直到Windows 7都没有问题。我试图用管理员权限运行该批处理文件。我试图用管理权限运行命令提示符,导航到Windows服务EXE并在那里运行InstallUtil。仍然不起作用。在Windows上安装C#Windows服务7

在阅读了一些其他建议后,我尝试将我的文件移出/ 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 \ 测试\ IEPPAMS_WinService1.exe 程序集的进度。该文件是 位于 C:\ Users \ Justin \ Desktop \ service test \ IEPPAMS_WinService1.InstallLog。

安装阶段发生异常。 System.InvalidOperationException: 无法在 计算机'。'上打开服务控制管理器。此操作可能需要其他权限 。内部 异常 系统.ComponentModel.Win32Exception异常 与以下错误 消息:访问被拒绝。

安装 的回滚阶段开始。请参阅 日志文件的内容以获取C:\ Users \ Justin \ Desktop \ 测试\ IEPPAMS_WinService1.exe 程序集的进度。该文件是 位于 C:\ Users \ Justin \ Desktop \ service test \ IEPPAMS_WinService1.InstallLog。

成功回滚阶段完成 。

交易安装已完成。

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

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

回答

8

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

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

不当然,为什么我必须在Windows 7中做到这一点,当时我从来不需要在XP中,但是哦。感谢所有的建议!

+1

我期待着在这里做同样的事情。我只是注意到,你的'修复'在这里使用.NET 4.0目录中的installutil.exe。在您原来的问题中,您使用.NET 2.0进行安装。 (设置DOTNETFX2 =%SystemRoot%\ Microsoft.NET \ Framework \ v2.0.50727) – 2011-09-19 12:20:35

+0

优秀点。我感觉当我正在尝试使用.NET 4.0的时候,这并没有成功。然后,当我走到完整的道路,它确实工作。没有回去尝试2.0的完整路径,这是几个月前,所以我可能会记住错误。 – 2011-09-19 15:16:19

+0

是的,这是答案!这花了我一个男人一天! – 2011-12-15 20:46:45

11

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

您很可能与Windows Vista和Windows 7中的新安全模型(用户帐户控制)竞争。即使您作为拥有管理权限的帐户运行,您仍然需要提升以执行一些操作(大部分)行政活动。(是的,它可以禁用此功能,但没有)

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

+0

马修,谢谢,但我试过。结果在我的问题结尾处进行了描述。 – 2010-08-31 19:04:29

+0

@Justin,尝试启动命令窗口作为管理员,然后尝试手动发布命令。这看起来像是一个权限问题,但没有坐在你的机器上,很难猜测出什么权限导致了这个问题。 – 2010-08-31 19:17:48

+1

顺便说一句,你有没有尝试寻找该日志文件? – 2010-08-31 19:18:40

3

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

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