簡體   English   中英

NServiceBus未創建RabbitMQ隊列

[英]NServiceBus not creating RabbitMQ queues

我有一個問題,其中NServiceBus不會自動創建所有隊列。

如果運行任何端點(不包括mvc Web客戶端),都會出現以下錯誤。 (端點已使用ServiceMatrix生成)

2015-04-23 10:50:12.241錯誤NServiceBus此終結點無法聯系ServiceControl后端以報告終結點信息。 您已在端點中安裝了ServiceCont rol插件。 但是,請確保在此計算機上安裝了特定的ServiceControl服務,或者如果在另一台計算機上運行ServiceControl,則請確保端點的app.config / web.c onfig,AppSettings適當地設置了以下鍵:ServiceControl / Queue列。 例如:其他詳細信息:{0} NServiceBus.Unicast.Queuing.QueueNotFoundException:不存在與收件人的交換--> RabbitMQ.Client.Exceptions.AlreadyClosedException:已關閉:AMQP操作被中斷:AMQP關閉-原因,由對等方發起,代碼= 404,文本=“ NOT_FOUND-虛擬主機'/'”中沒有交換'particular.servicecontrol',classId = 60,methodId = 40,cause =在RabbitMQ.Client.Impl.ModelBase.WaitForConfirms( TimeSpan超時,布爾值和超時)...

因此,似乎沒有創建specific.servicecontrol。 但是,確實創建了其余隊列。

如果我運行Web項目,我還會收到一個異常:{“無法訪問已處置的對象。\\ r \\ n對象名稱:'CommonObjectBuilder'。”}。 在“ Bus.Create(config)”上發生此錯誤,並且沒有創建隊列。

if (Debugger.IsAttached)
{   

    config.UsePersistence<InMemoryPersistence>();

    config.EnableInstallers();
}

var bus = Bus.Create(config);

如果我手動將special.servicecontrol添加到隊列中,所有錯誤都會消失。

因此,最終,我的主要錯誤是沒有將ServiceControl更新為使用RabbitMQ。

發生這種情況時,NServiceBus不會以正確的錯誤消息很好地失敗。 實際上,ServiceControl負責創建specific.servicecontrol隊列,並且當該隊列丟失時,總線本身中的所有地獄都將松散。

但是,它並不像Multi Transport安裝文檔中所討論的那樣簡單。 簡而言之,雖然NSB5與RabbitMQ v2.1.2(最新的穩定版)一起使用,但是ServiceControl二進制文件需要v1.1.5。 因此,必須從“ RabbitMQ.Client v3.2.1”和“ RabbitMQ v2.1.2” nuget程序包中復制二進制文件到“ C:\\ Program Files(x86)\\ Special Software \\ ServiceControl”中,否則會得到

傳輸配置失敗。 無法通過設置“ TransportType”解析類型“ NServiceBus.RabbitMQ,NServiceBus.Transports.RabbitMQ”。 確保程序集存在並且該類型在設置中正確定義

在為ServiceControl運行RabbitMQ的安裝時。

我在這里找到了解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM