我创建了一个简单的NServiceBus端点(暂时不做任何事情),当我安装它时(使用NServiceBus.Host.exe /install /displayName:"MyEndpoint"
),它作为服务安装
在本地服务下运行,它运行良好。
现在,当我将此Windows服务的运行方式帐户更改为我自己的本地服务帐户(暂时将其称为“svcTestAccount”,它将Logon作为服务权限)时,服务启动,然后意外地启动在初始化期间中途停止。
我不明白为什么,因为没有异常记录到log4net,该过程才会终止。 我在之前的项目中看到过这种行为,当端点无法访问它所需的队列时,但这次我配置了5个队列,我的端点给了“Everyone”“完全控制”,所以它不应该是的,对吗?
奇怪的是,当我运行它(使用生产配置文件中的NServiceBus.Host.exe)时,它很乐意在以下所有情况下运行:
唯一不起作用的是让它在svcTestAccount下作为Windows服务运行(而不是本地Administrators组的成员)。
有谁能告诉我发生了什么事?
为了完整起见,我的终端只包括:
public class EndpointConfig : IConfigureThisEndpoint, AsA_Publisher, IWantCustomInitialization
{
public void Init()
{
Configure.With()
.DefaultBuilder()
.Log4Net();
}
}
我的web.config:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<configuration>
<configSections>
<section name="UnicastBusConfig" type="NServiceBus.Config.UnicastBusConfig, NServiceBus.Core" />
</configSections>
<UnicastBusConfig>
<MessageEndpointMappings>
</MessageEndpointMappings>
</UnicastBusConfig>
</configuration>
我在Windows Server 2012上使用NServiceBus 4.3.0。
答案 0 :(得分:3)
要将NServiceBus主机作为其他帐户(而非本地系统)运行,您需要使用/username
和/password
执行安装程序,例如:
NServiceBus.Host.exe /install /displayName:"MyEndpoint" /username:"mydomain\username" /password:"mysecretpassword"
有关详细信息,请参阅http://docs.particular.net/NServiceBus/the-nservicebus-host#installation。