2016-03-08 70 views
2

我曾尝试使用以下,类似命令安装了5个服务:NServiceBus安装程序无法创建表

/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" 

四项服务以及一个传奇。没有任何服务会启动,但传奇服务已启动并正在运行。佐贺不需要endpointconfigurationtype参数,但没有它的话,其他服务都不会安装。在他们每个人有一个错误信息:

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\work\888dd942b44bad5a\src\ 
NServiceBus.SqlServer\SqlServerQueueCreator.cs:line 39 
    at NServiceBus.Satellites.SatellitesQueuesCreator.Install(String identity, Co 
nfigure config) in c:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Sate 
llites\SatellitesQueuesCreator.cs:line 30 
    at NServiceBus.Features.InstallationSupport.Starter.Run(Configure config) in 
c:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Installation\Installati 
onSupport.cs:line 75 
    at NServiceBus.Configure.Initialize() in c:\BuildAgent\work\3206e2123f54fce4\ 
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,但相同的用户用于佐贺和创造表。我正在使用outbox = true,并关闭了MSDTC服务。我正在使用6.0版的NServiceBus Host.exe,我认为它包含了发件箱表的修复程序。这与安装后丢失的消息有关,所以我不认为这是相关的。

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

+0

配置文件的数据库,这是我得到的错误:对象或列名缺失或空。对于SELECT INTO语句,请确认每列都有一个名称。对于其他语句,查找空的别名。别名定义为“”或[]是不允许的。将别名更改为有效的名称。有谁知道我如何通过配置来控制它? – onesixtyfourth

回答

0

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