NServiceBus Installer 无法创建表

NServiceBus Installer fails to create tables

我使用以下类似命令安装了 5 个服务:

/install /serviceName:"ADS-CI-DQC.UKHO.SIP.OrderFulfilment.ServiceBus.Enp.Holdings" /displayName:"ADS-CI-DQC.UKHO.SIP.OrderFulfilment.ServiceBus.Enp.Holdings" /description:"Orderfulfilment Holdings service" /endpointConfigurationType:"UKHO.SIP.OrderFulfilment.ServiceBus.Enp.Holdings.Program, UKHO.SIP.OrderFulfilment.ServiceBus.Enp.Holdings" /username:"username" /password:"password"

四项服务和一个传奇。 None 的服务将启动,但 saga 服务已启动并且 运行。 Saga 不需要 endpointconfigurationtype 参数,但其他服务的 none 无需它即可安装。他们每个人都有一条错误消息:

Failed to execute installers: System.Data.SqlClient.SqlException (0x80131904): A
n object or column name is missing or empty. For SELECT INTO statements, verify
each column has a name. For other statements, look for empty alias names. Aliase
s defined as "" or [] are not allowed. Change the alias to a valid name.
An object or column name is missing or empty. For SELECT INTO statements, verify
 each column has a name. For other statements, look for empty alias names. Alias
es defined as "" or [] are not allowed. Change the alias to a valid name.
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolea
n breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObj
ect stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand
 cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler,
TdsParserStateObject stateObj, Boolean& dataReady)
   at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName,
Boolean async, Int32 timeout, Boolean asyncWrite)
   at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSou
rce`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean
asyncWrite)
   at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   at NServiceBus.Transports.SQLServer.SqlServerQueueCreator.CreateQueueIfNecess
ary(Address address, String account) in c:\BuildAgent\work8dd942b44bad5a\src\
NServiceBus.SqlServer\SqlServerQueueCreator.cs:line 39
   at NServiceBus.Satellites.SatellitesQueuesCreator.Install(String identity, Co
nfigure config) in c:\BuildAgent\work06e2123f54fce4\src\NServiceBus.Core\Sate
llites\SatellitesQueuesCreator.cs:line 30
   at NServiceBus.Features.InstallationSupport.Starter.Run(Configure config) in
c:\BuildAgent\work06e2123f54fce4\src\NServiceBus.Core\Installation\Installati
onSupport.cs:line 75
   at NServiceBus.Configure.Initialize() in c:\BuildAgent\work06e2123f54fce4\
src\NServiceBus.Core\Configure.cs:line 125
   at NServiceBus.GenericHost.PerformConfiguration(Action`1 moreConfiguration)
   at NServiceBus.GenericHost.Install(String username)
   at NServiceBus.Hosting.Windows.Installers.WindowsInstaller.RunInstall()
ClientConnectionId:0d592dd2-ce34-4b31-9b94-e53f776e1264
Error Number:1038,State:4,Class:15

我发现我的用户名可能有问题,因为其中包含 .co.uk 但同一用户用于 Saga 并且创建了表。我正在使用 outbox = true 并关闭了 MSDTC 服务。我正在使用 NServiceBus Host.exe 的 6.0 版,我认为它包括对发件箱表的修复。这与安装后丢失消息有关,所以我认为没有关系。

我可以通过复制现有结构来手动创建表,但我想解决这个问题。

我找到了问题,最后很简单。我在五个配置文件中的四个中的 <NServiceBusConfig> 标记中缺少 DefaultTransportSchema="dbo" DefaultPersistenceSchema="dbo"。添加它们允许安装工作