2013-07-16 50 views
0

我有一個非常簡單的發佈/訂閱設置,其中訪問我們的開發機器工作正常,但是當我部署到我們的測試serveres它拋出這個錯誤的所有消息:NServiceBus用戶沒有在服務器上

System.NullReferenceException: Object reference not set to an instance of an object. 
    at NServiceBus.Unicast.UnicastBus.HandleTransportMessage(IBuilder childBuilder, TransportMessage msg) in c:\BuildAgent\work\nsb.master_6\src\unicast\NServiceBus.Unicast\UnicastBus.cs:line 1328 
    at NServiceBus.Unicast.UnicastBus.TransportMessageReceived(Object sender, TransportMessageReceivedEventArgs e) in c:\BuildAgent\work\nsb.master_6\src\unicast\NServiceBus.Unicast\UnicastBus.cs:line 1247 
    at System.EventHandler`1.Invoke(Object sender, TEventArgs e) 
    at NServiceBus.Unicast.Transport.Transactional.TransactionalTransport.OnTransportMessageReceived(TransportMessage msg) in c:\BuildAgent\work\nsb.master_6\src\impl\unicast\transport\NServiceBus.Unicast.Transport.Transactional\TransactionalTransport.cs:line 480 

我們媒體鏈接有其他SendOnly,經銷商和工作在同一臺服務器上的工作人員,所以應該正確安裝msmq等。 這是我們第一次在這些服務器上使用Pub/Sub。

如果我在開發人員機器上使用完全相同的二進制文件和配置文件,它可以順利運行,但不會在2008R2,Powershell V3的服務器上運行。

我們用的是一口流利的配置爲用戶:

return NServiceBus.Configure.With() 
     .DefineEndpointName(queuePrefix) 
     .Log4Net(_serviceBusLog.Build()) 
     .StructureMapBuilder() 
     .JsonSerializer() 
     .License(ConfigTable.GetConfigString(ConfigTableKeys.NServiceBus, "License")) 
     .MsmqTransport() 
     .IsTransactional(true) 
     .RunTimeoutManagerWithInMemoryPersistence() 
     .EnablePerformanceCounters() 
     .UnicastBus() 
     .CreateBus() 
     .Start(() => NServiceBus.Configure.Instance.ForInstallationOn<NServiceBus.Installation.Environments.Windows>().Install()); 

我們也有我們自己的UnicastBus config的掃描消息處理程序(它們是消息類型),然後自動創建端點映射。這是我首先關心的問題,所以我禁用了它,並使用app.config設置端點的方式,但仍然出現錯誤。

請注意每條消息的錯誤消息。 注意我們正在運行NSB的3.3.5版本。

我仍然在運行服務器設置,因爲我相信必須有一些差異才能打勾,但我還沒有找到它。

任何人有什麼建議,以尋找什麼?

親切的問候

+0

這似乎是一個雙重職位(請參閱http://tech.groups.yahoo.com/group/nservicebus/message/19858),在雅虎郵件列表 –

+0

回答但它尚未解決:)。我只是想通過發佈在2個論壇上達到最廣泛的受衆,因爲問題是相當嚴重的:)。 –

+1

是發佈商失敗還是訂閱者? –

回答

0

看來我發現了錯誤。

在服務器上測試原始簡單的控制檯的Pub/Sub後,我在處理程序中添加了一個嘗試捕捉和抓住了......我自己的異常....

林embrassed。

但它似乎沒有正確轉發到NSB中的日誌,因此我完全拋棄了真正的問題。

我不知道這是否是在NSB的更高版本中修復的,但我希望如此。 直到那時我使用我自己的嘗試抓住邏輯來添加自定義日誌條目。

親切的問候。

相關問題