Windows服务错误:Installog访问被拒绝

11

在通过命令提示符安装Windows服务时,我遇到以下错误:

'C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.InstallLog'的访问被拒绝。

我使用以下命令:

C:\Windows\Microsoft.NET\Framework\v2.0.50727>installutil.exe "C:\Hive-WindowsService\HiveBatchProcess\HiveBatchProcess\bin\Debug\HiveBatchProcess.exe" -i

可能出了什么问题?


检查 installutil.installlog 文件的权限和属性:命令为 -- cacls C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.InstallLog -- 和 -- attrib C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.InstallLog -- 确保文件不是只读的,并且 ACL 设置正确。 - seva titov
嗨,Seva Titov,我是新手,对于这个Windows服务不太熟悉,你能告诉我应该在哪里执行它吗?在VS2008命令提示符下还是在Windows命令提示符下? - Parth Bhatt
1
任何一种都可以。只要确保以管理员身份运行命令提示符(右键单击->以管理员身份运行)。 - seva titov
谢谢,我已经搞定了。我没有以管理员身份打开命令提示符,因此它没有给予我安装服务的权限。:) 无论如何还是谢谢。 - Parth Bhatt
3个回答

25

你是否拥有管理员权限?尝试通过以管理员身份启动命令提示符来运行服务设置。


我以管理员身份运行它,但错误仍未解决。可能出了什么问题? - Parth Bhatt
1
谢谢,已经解决了。只需右键单击VS2008命令提示符并点击“以管理员身份运行”。感谢Felice Pollano。 :) - Parth Bhatt
运行 installutil.exe 不一定需要管理员权限。它只是钩入被安装的可执行文件中的安装代码 - 因此所需的权限取决于该可执行文件。问题中指定的错误消息仅涉及创建日志文件的权限,这 不需要 以管理员身份运行。请参见下面的答案... - crimbo
我必须以管理员身份运行Powershell,然后安装服务。 - SaundersB

2
尝试从不同的目录(例如%TEMP%)运行-它只需要访问当前目录以将日志文件写入,而默认情况下非管理员无法写入{{c:\ Windows}}子目录。
例如:
cd %TEMP%
"C:\Windows\Microsoft.NET\Framework\v2.0.50727\installutil.exe" "C:\Hive-WindowsService\HiveBatchProcess\HiveBatchProcess\bin\Debug\HiveBatchProcess.exe" -i

根据HiveBatchProcess.exe的安装逻辑,您可能需要额外的权限(例如注册表访问、对其他目录的写入访问等)。但运行installutil.exe不一定需要管理员权限。


1

进入"%temp%"目录,然后执行"C:\Windows\Microsoft.NET\Framework\v2.0.50727\installutil.exe" "\ourServiceexe.exe"命令。

我将服务密码更改为服务器的管理员密码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接