背景「沒有終點的掃描組件中的配置」:可怕的NServiceBus錯誤
- 我在溶液中的兩種NServiceBus端點項目。
- 兩者都是NServiceBus訂戶,並且包含一條消息的消息處理程序。
- 每個訂閱者項目處理來自兩個不同發佈者之一的消息。因此,一個項目引用來自一個發佈者的消息DLL,另一個引用另一個發佈者的消息DLL。
- 這兩個發佈者都在我的解決方案之外。從消息的DLL
- 除了,無論訂戶項目中引用爲NServiceBus相同二進制文件,並且附加有相同的設置(UnicastBusConfig,EndpointConfig,的appSettings等)
一個訂戶項目運行良好,但另一方一個失敗,出現此錯誤:
未處理的異常:System.InvalidOperationException:在掃描的程序集中找不到端點配置。這通常發生在NServiceBus無法加載包含IConfigureThisEndpoint的程序集時。嘗試使用appsetting鍵在NServiceBus.Host.exe.config明確指定類型:EndpointConfigurationTypeScanned路徑:我這裏路徑 在NServiceBus.Host.Program.ValidateEndpoints(IEnumerable`1 endpointConfigurationTypes) 在NServiceBus.Host.Program。 GetEndpointConfigurationType() at NServiceBus.Host.Program.Main(String [] args)
我懷疑這個問題必須出現在用戶無法啓動的NServiceBus發佈者消息DLL中。 Howerver,我不知道如何解決這個問題。使用反彙編
- 兩個NServiceBus出版商的消息DLL的體現,他們是相同的(至於引用處理器的標誌和NServiceBus DLL版本):我已經看過了。
- NSB消息項目,它們都是使用.Net 3.5 Framework構建的。
我在這裏瘋了,已經燒了差不多一天,試圖讓這個工作。任何幫助將大規模讚賞。
感謝您的回覆。我知道你的意思是很容易忘記一些簡單而基本的東西。我實際上意識到這是因爲消息彙編只是延遲簽名。爲了迴應您的帖子,我認爲第二個要點是無效的,因爲IConfigureThisEndpoint實施不需要公開。可以是內部的。 – 2011-05-23 10:59:47
你是對的,它可能是內部的。我剛剛檢查過它,並添加了編輯的第二個項目符號。 – 2011-05-23 12:35:59
如果您的程序集的框架版本與NServiceBus程序集之間存在不匹配的情況,即您正在使用爲.NET 3.5編譯的NServiceBus,但Visual Studio 2010已將您的端點(默認情況下)創建爲.NET 4.0,則也會發生這種情況。 – 2011-05-23 14:03:12