2013-08-21 31 views
1

問題:訂閱者無法從發佈者接收事件,因爲發佈者和訂閱者正在使用不同的傳輸。發佈者和訂閱者在同一臺服務器上運行。NServiceBus Pub/Sub使用不同的傳輸

出版商 - NServiceBus 3.0中使用MSMQ傳輸

用戶 - NserviceBus 4.0使用MSSQL運輸

錯誤

Failed to subscribe to NServiceBus.Unicast.Queuing.QueueNotFoundException: Failed to send message to address: [publisher] ---> System.Data.SqlClient.SqlException: Invalid object name '......publisher'. 
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) 
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) 
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject 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.FinishExecuteReader(SqlDataReader ds, Run Behavior runBehavior, String resetOptionsString) 
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds) 
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite) 
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, BooleanasyncWrite) 
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() 
at NServiceBus.Transports.SQLServer.SqlServerMessageSender.ExecuteQuery(TransportMessage message, SqlCommand command) in c:\TeamCity\buildAgent\work\d4de8921a0aabf04\src\SqlServer\NServiceBus.SqlServer\SqlServerMessageSender.cs:line 150 at NServiceBus.Transports.SQLServer.SqlServerMessageSender.Send(TransportMessage message, Address address) in c:\TeamCity\buildAgent\work\d4de8921a0aabf04\src\SqlServer\NServiceBus.SqlServer\SqlServerMessageSender.cs:line 71 
--- End of inner exception stack trace --- 
at NServiceBus.Transports.SQLServer.SqlServerMessageSender.Send(TransportMessage message, Address address) in c:\TeamCity\buildAgent\work\d4de8921a0aabf04\src\SqlServer\NServiceBus.SqlServer\SqlServerMessageSender.cs:line 87 at NServiceBus.Unicast.Subscriptions.MessageDrivenSubscriptions.MessageDriven SubscriptionManager.SendMessage(Address publisherAddress, TransportMessage subscriptionMessage) in c:\TeamCity\buildAgent\work\d4de8921a0aabf04\src\NServiceBus.Core\Unicast\Subscriptions\MessageDrivenSubscriptions\MessageDrivenSubscriptionManager.cs:line 149 
at NServiceBus.Unicast.Subscriptions.MessageDrivenSubscriptions.MessageDrivenSubscriptionManager.SendSubscribeMessageWithRetries(Address destination, TransportMessage subscriptionMessage, String messageType, Int32 retriesCount) in c:\TeamCity\buildAgent\work\d4de8921a0aabf04\src\NServiceBus.Core\Unicast\Subscriptions\MessageDrivenSubscriptions\MessageDrivenSubscriptionManager.cs:line 156 at publisher queue ...FeedAvailable, .....Messages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 
+0

這篇文章有幫助嗎?:http://stackoverflow.com/questions/16729436/mixed-transports-in-nservicebus-4-0 –

回答

1

需要雙方使用相同的傳輸是當做pub/sub,請求/響應等。

+0

我可以在訂戶端使用MS-SQL和MSMQ傳輸嗎?因爲我的訂戶正在交付不同的來自MS-SQL傳輸的命令?是的,你能指點一些文章或樣本嗎? – soprathi

相關問題