11

我创建了一个 C# 服务。现在我想在 Windows Server 2008 R2 上安装该服务。我正在使用InstallUtil命令安装服务。我以管理员身份打开命令提示符。

该服务应以特定用户身份运行,因此我将帐户设置为服务安装程序上的用户。

当我运行命令时出现错误:

在安装阶段发生异常: System.ComponentModel.Win32Exception: Access Denied

这是日志文件:

Installing assembly 'C:\Service\MyService.exe'.
Affected parameters are:
   logtoconsole = 
   logfile = C:\Service\MyService.InstallLog
   assemblypath = C:\Service\MyService.exe
Rolling back assembly 'C:\Service\MyService.exe'.
Affected parameters are:
   logtoconsole = 
   logfile = C:\Service\MyService.InstallLog
   assemblypath = C:\Service\MyService.exe
An exception occurred during the Rollback phase of the System.ServiceProcess.ServiceProcessInstaller installer.
System.NullReferenceException: Object reference not set to an instance of an object.
An exception occurred during the Rollback phase of the installation. This exception will be     ignored and the rollback will continue. However, the machine might not fully revert to its initial state after the rollback is complete.

以下是命令提示符上显示的内容:

Beginning the Install phase of the installation.
See the contents of the log file for the C:\Service\MyService.exe assembly's progress.
The file is located at C:\Service\MyService.InstallLog.
Installing assembly 'C:\Service\MyService.exe'.
Affected parameters are:
   logtoconsole =
   logfile = C:\Service\MyService.InstallLog
   assemblypath = C:\Service\MyService.exe

An exception occurred during the Install phase.
System.ComponentModel.Win32Exception: Access Denied
   at System.ServiceProcess.ServiceProcessInstaller.OpenSecurityPolicy()
   at System.ServiceProcess.ServiceProcessInstaller.Install(IDictionary stateSaver)
   at System.Configuration.Install.Installer.Install(IDictionary stateSaver)
   at System.Configuration.Install.Installer.Install(IDictionary stateSaver)
   at System.Configuration.Install.AssemblyInstaller.Install(IDictionary savedState)
   at System.Configuration.Install.Installer.Install(IDictionary stateSaver)
   at System.Configuration.Install.TransactedInstaller.Install(IDictionary savedState)

The Rollback phase of the installation is beginning.
See the contents of the log file for the C:\Service\MyService.exe assembly's progress.
The file is located at C:\Service\MyService.InstallLog.
Rolling back assembly 'C:\Service\MyService.exe'.
Affected parameters are:
   logtoconsole =
   logfile = C:\Service\MyService.InstallLog
   assemblypath = C:\Service\MyService.exe
An exception occurred during the Rollback phase of the System.ServiceProcess.Ser
viceProcessInstaller installer.
System.NullReferenceException: Object reference not set to an instance of an obj
ect.
An exception occurred during the Rollback phase of the installation. This exception will be ignored and the rollback will continue. However, the machine might not fully revert to its initial state after the rollback is complete.

The Rollback phase completed successfully.

The transacted install has completed.
The installation failed, and the rollback has been performed.

有人知道我需要做什么来安装该服务吗?

4

3 回答 3

9

我终于可以安装服务了。我以称为服务器管理员的角色登录到服务器。我的管理员将我的帐户添加到服务器的本地管理员组。在此之后,我可以安装该服务。它看起来像服务器管理员帐户,我用来登录系统没有完整的管理员权限。

谢谢你的帮助。

于 2013-03-19T14:51:03.930 回答
2

你真的没有提供任何关于你的服务做什么的细节,我还不能直接评论你的帖子,但你可以试试这个链接

总结是检查并确保您正在运行正确的 32/64 位 installutil.exe,并验证您的合并模块不会导致问题。

也许更好地描述您的服务会有所帮助?该服务是否在您的本地机器上安装得很好,而不是在服务器上?

于 2013-03-17T17:12:12.800 回答
1

这个问题是由于安全问题,最好在 RUN AS ADMINISTRATOR 中打开命令提示符并安装您的服务,它肯定会解决您的问题

于 2019-01-29T09:44:45.037 回答