我在 C# 中创建了一个 Windows 服务应用程序。我正在尝试使用 Windows Server 2012 上的“托管服务帐户”运行服务。问题是,我无法设置服务应该运行的帐户。当我设置服务的属性时,我收到一个错误“文件名或扩展名太长”。谷歌搜索没有一点帮助,似乎没有其他人遇到过这种问题。
以下是我所做的一些细节:
1) 在 Visual Studio 2012 中创建了服务应用程序。该服务位于命名空间中,因此可执行文件名称或多或少类似于 Name1.Name2.ServiceName.exe
2)在机器上安装服务,假设它运行没有问题(使用 installutil.exe)
3) 按照以下视频中的步骤在 Active Directory 域中创建“托管服务帐户”:http ://www.youtube.com/watch?v=6i4j0O3suNk 。简而言之,它使用 Windows Power Shell 的 Active Directory 模块。在 Power Shell(以管理员身份运行)中,我需要执行以下命令:
import-module ActiveDirectory
New-ADServiceAccount -name ServiceAccountName -enable $true
Add-ADComputerServiceAccount -Identity HostName -ServiceAccount ServiceAccountName
在 HostName 主机(我想在其中运行服务)我也需要运行
Install-ADServiceAccount -Identity ServiceAccountName
到目前为止一切都很顺利
4) 在我的服务属性中的管理工具 -> 服务中,在“登录”选项卡上选择“此帐户”并搜索 ServiceAccountName。它发现没问题,但是当我尝试单击“确定”时,它告诉我输入有效密码。现在 AFAIK 托管服务帐户的密码应该为空,所以我删除它,然后按 OK 给我这个无意义的错误“文件名或扩展名太长”。
5)我还在管理工具->本地安全策略->本地策略->用户权限分配->作为服务登录中添加了这个帐户,但结果是一样的。
我想以“Windows Server 2012”的方式执行此操作,而无需为该服务创建常规用户帐户,但我不知道为什么会弹出此错误。提前感谢您的任何提示。