我有一個與RabbitMq交互的asp.net mvc應用程序。一切工作在當地很好。無法從Asp.Net應用程序連接到RabbitMq
但是,我們的部署服務器無法連接
DEBUG|MassTransit.RabbitMqTransport.Integration.RabbitMqConnectionCache|Connecting: [email protected]:5672/|
ERROR|MassTransit.RabbitMqTransport.RabbitMqReceiveTransport|RabbitMQ connection failed: Connect failed: [email protected]:5672/|
什麼,我能夠收集到這是
- 爲了連接到RabbitMQ的,你需要一個有效的
.erlang.cookie
(在Windows )你的用戶根 - 盡我所知,這個cookie是在你安裝rabbitmq時創建的
- 在開發中我們使用的是localdb,它以d eveloper的用戶(擁有此cookie)
- 在生產中,應用程序運行的IIS使用應用程序池和內置
ApplicationPoolIdentity
帳戶。其中沒有用於生成.erlang.cookie
文件的用戶文件夾。
所以問題變成了......現在呢?這是如何工作的?
顯然我們可以爲web應用程序創建一個專用的用戶,但我們的系統管理員可以理解地很不願意這樣做。
另一個線索是,當我嘗試RDP時,以自己身份登錄並連接到兔子,我發現我不能。在排除故障後,我發現我的cookie與其他人的cookie不匹配!我用c:\windows\.erlang.cookie
替換它,然後可以從cli連接。似乎有可能在那裏是安裝了一個cookie 某處爲應用程序身份但它是一個不正確的cookie。它將去的地點是什麼?
Erlang需要cookie來啓動rabbitmq--但是,這不需要從客戶端連接到代理。你能澄清erlang/rabbitmq是如何啓動的嗎?還要說明你正在使用哪個客戶端。 – theMayer
@theMayer rabbitmq正在作爲一個Windows服務啓動(它安裝的標準方式)。我正在使用使用[RabbitMQ.Client](https://www.nuget.org/packages/RabbitMQ.Client/)庫的[MassTransit](http://masstransit-project.com/)進行連接。 –
也@theMayer我不知道「erlang需要cookie啓動rabbitmq」廣場與我的經驗。當我的用戶文件夾中有錯誤的cookie時,rabbit mq已經在運行,同事可以連接到它,但是我不能。更新我的'.erlang.cookie'允許我連接 –