是否需要作为运行服务的用户安装具有SQL Server传输和Windows身份验证的NServiceBus端点?
我正在安装一个使用SQL Server传输的NServiceBus4.x端点。运行安装程序时(通过Octopus Deploy,默认情况下作为本地系统运行)是否需要作为运行服务的用户安装具有SQL Server传输和Windows身份验证的NServiceBus端点?,nservicebus,Nservicebus,我正在安装一个使用SQL Server传输的NServiceBus4.x端点。运行安装程序时(通过Octopus Deploy,默认情况下作为本地系统运行) \NServiceBus.Host.exe/install NServiceBus.Production/serviceName=$name/username:$username”/password:$password …我得到一个错误: 未能执行安装程序:System.Data.SqlClient.SqlException(0x80131
\NServiceBus.Host.exe/install NServiceBus.Production/serviceName=$name/username:$username”/password:$password
…我得到一个错误:
未能执行安装程序:System.Data.SqlClient.SqlException(0x80131904):用户“DOMAIN\MACHINENAME$”登录失败。
如果安装程序在运行时连接到SQL Server,则这是预期的行为:本地系统在离开机箱时成为计算机帐户,并且计算机帐户无权访问传输数据库
但是,我不打算将端点作为本地系统运行。相反,我打算使用能够访问传输数据库的域服务帐户,因此
是否可以使用SQL Server transport作为无权访问传输数据库的用户安装NServiceBus端点
附加问题:在4.x之后的NServiceBus版本中,此行为是否已更改?这里的问题是,
NServiceBus.Host.exe
使用您所说的Octopus Deploy的凭据执行,并且/install
运行NServiceBus安装程序
一些备选方案:
sc.exe
注册该服务以使用正确的凭据注册windows服务,并使用endpointConfiguration.EnableInstallers()
控制是否必须运行安装程序
endpointConfiguration.EnableInstallers()
但要编写所有任务的脚本,并让这些任务独立于“windows服务”注册任务运行。或者,您可以使用sc.exe
注册NServiceBus.Host.exe
,以便/install
不会运行
- 这意味着大部分脚本都是自己生成的。有些组件有脚本生成器,但我们的文档中有很多关于脚本的指导
我建议不要总是运行
endpointConfiguration.enablesinstallers()
在端点上。您应该区分部署和运行时。在部署期间,您将创建表、架构等,但在运行时,该帐户不应具有创建或删除表的权限,并且运行最低权限。这里的问题是,NServiceBus.Host.exe
是使用凭据执行的当然,正如您所说,Octopus部署和/install
运行NServiceBus安装程序
一些备选方案:
sc.exe
注册该服务以使用正确的凭据注册windows服务,并使用endpointConfiguration.EnableInstallers()
控制是否必须运行安装程序
endpointConfiguration.EnableInstallers()
但要编写所有任务的脚本,并让这些任务独立于“windows服务”注册任务运行。或者,您可以使用sc.exe
注册NServiceBus.Host.exe
,以便/install
不会运行
- 这意味着大部分脚本都是自己生成的。有些组件有脚本生成器,但我们的文档中有很多关于脚本的指导
我建议不要总是运行
endpointConfiguration.enablesinstallers()
在端点上。您应该区分部署和运行时。在部署期间,您将创建表、架构等。但在运行时,该帐户不应具有创建或删除表的权限,并且不应具有运行最低权限。我们正在查看此信息。我的同事Ramon将于明天回复您我们正在查看此my c奥利格·雷蒙明天会给你回电