У меня есть приложение .net 4.0, портированное из net 3.5, которое использует net.msmq, работающее на сервере 2008 x64
Настройка
- net.msmq Сервис с адресом "net.msmq: //localhost/private/msmqdataservice.svc"
- net.msmq конечная точка с адресом "net.msmq: //localhost/private/msmqdataservice.svc"
- очередь в MSMQ -> name = "$ private \ msmqdataservice.svc"
сейчас все работает на производстве с .net 3.5.
Я установил .net 4.0 на сервер и создал новый сайт для размещения на том же компьютере.
Новая промежуточная настройка msmq:
- net.msmq Сервис с адресом "net.msmq: //localhost/private/staging/msmqdataservice.svc"
- конечное соединение net.msmq с адресом "net.msmq: //localhost/private/staging/msmqdataservice.svc"
- очередь в MSMQ -> name = "$ private \ staging / msmqdataservice.svc"
Создана еще одна очередь для другого сайта.
Еще одно изменение, которое я сделал с новым сайтом, - это другой сайт в iis с прослушиванием по другому IP-адресу. Я оставил net.msmq привязкой к 'localhost'. Основной сайт также имеет такую же привязку для net.msmq -> 'localhost'. Я думаю, что так и должно быть. Пожалуйста, укажите, если вам нужна другая конфигурация.
Проблема в том, что мои запросы помещаются в очередь, но не обрабатываются приложением, оно просто остается там
Нет никаких признаков того, что что-то не так в журнале. Единственное, что я вижу в журнале, связанном с этим, это предупреждение "msmqactivation не может обнаружить очередь". Хотя это предупреждение я никогда не понимал правильно, так как мы видели это всегда со всем нормально с msmq в 3.5.
Все, что я могу думать, проверено, и это правильно.
- Пул приложений приложения работает как сетевая служба и имеет полный доступ к очереди.
- Служба активации net.msmq работает с сетевой службой
- Пробовал другое соглашение об именах URL службы с одинаковым результатом
Резюме
Пожалуйста, предоставьте любую информацию о настройке нескольких сайтов с помощью net.msmq. Я использую связывание net.msmq со значением = 'localhost' для обоих сайтов. Я думаю, что это машинное имя.
Есть ли способ диагностировать эту проблему?
Может помочь любая другая вещь, о которой вы можете подумать.
Вчера нам пришлось отложить релиз, поскольку, потратив около 100 человеко-часов, мы не можем понять, в чем проблема. Также не могу сломать его в моей машине разработки.
Редактировать
Проблема заключалась в том, что после создания нового соглашения об именах сайтов не работает, как
net.msmq Сервис с адресом "net.msmq: //localhost/private/staging/msmqdataservice.svc"
конечная точка net.msmq с адресом «net.msmq: //localhost/private/staging/msmqdataservice.svc»
очередь в MSMQ -> name = "$ private \ staging / msmqdataservice.svc"
работает с именем службы
net.msmq: //localhost/private/msmqdataservice.svc
но теперь у меня не может быть двух сайтов, использующих одну и ту же конечную точку.
Есть ли способ иметь одну и ту же конечную точку на двух разных сайтах с разными URL и разными очередями на одной машине?