Сбой процесса w3wp с примером NServiceBus AsyncPages в Windows 7 x64 - PullRequest
0 голосов
/ 19 сентября 2011

У меня были бесконечные проблемы, когда я пытался развернуть приложение NServiceBus, которое, как я подозревал, было связано с проблемами устаревшего кода / пула приложений, поэтому сегодня я настроил полностью чистую виртуальную машину с установленной Windows 7 x64 (SP1)Visual Studio 2008 и последние [NServiceBus 2.6.1504][1] двоичные файлы, и я вижу точно такую ​​же проблему.Я разблокировал ZIP-файл, выполнил функцию RunMeFirst.bat и использую пример .NET 3.5 AsyncPages, поставляемый с NServiceBus, для воспроизведения проблемы.

Во-первых, когда я запускаю и сервер, иПример WebApplication1 в Visual Studio работает нормально.

Проблема возникает, когда я пытаюсь запустить пример WebApplication1 в IIS.Все, что я сделал, это зашел в диспетчер IIS, щелкнул правой кнопкой мыши веб-сайт по умолчанию и изменил физический каталог на папку WebApplication1 в дистрибутиве NServiceBus.

Страница default.aspx загружается и отображает:

Введите число ниже и нажмите «Перейти».

Если число четное, результатом будет «Fail», в противном случае это будет «None».

... но когда я ввожу любой тип ввода и нажимаю «Перейти», все идет не так.

Процесс NServiceBus.host.exe, который выполняется на сервере, создаетвывод:

2011-09-19 00: 31: 23,623 [Worker.5] INFO NServiceBus.Unicast.UnicastBus [(null)] <(null)> - Полученное сообщение Messages.Command, Messages, Версия = 1.0.0.0, Cultur e = нейтральный, PublicKeyToken = ноль с идентификатором 77ae75b7-ffad-4025-8163-13a83c60db91 \ 41 от отправителя MyWebClient @ WIN7-VM

2011-09-19 00:31: 23,632 [Worker.5] INFO NServiceBus.Unicast.UnicastBus [(null)] <(null)> - Невозможно олицетворять, потому что во входящем сообщении не указан идентификатор Windows.Это часто встречается в сценариях взаимодействия.

(все выделено зеленым, что говорит о том, что не о чем беспокоиться ...?)

Затем я получаю два сообщения в событии Windowslog:

Log Name:      System
Source:        Microsoft-Windows-WAS
Date:          19/09/2011 00:31:20
Event ID:      5011
Task Category: None
Level:         Warning
Keywords:      Classic
User:          N/A
Computer:      Win7-VM
Description:   A process serving application pool 'DefaultAppPool' suffered a fatal communication error with the Windows Process Activation Service. The process id was '3360'. The data field contains the error number.

Затем появляется еще одно идентичное сообщение с другим идентификатором процесса, и затем я получаю The connection to **localhost** was interrupted.

Нажатие кнопки «Обновить» приводит к точно такому же поведению - два журнала NServiceBusсообщения, две ошибки в журнале событий Windows, а затем сообщение «соединение прервано».

Это полностью чистая установка, запускающая двоичные файлы прямо с сайта NServiceBus, поэтому я не понимаю, почемуэто не работает - я наткнулся на неподдерживаемый сценарий или что-то?Любая помощь высоко ценится.

1 Ответ

4 голосов
/ 20 сентября 2011

ОК ... кажется, это из-за разрешений в очереди сообщений.

Я нашел это сообщение от Джонатана Оливера, которое касается именно той проблемы, с которой я сталкиваюсь, и ссылки на это сообщение , в котором более подробно рассказывается о том, что его вызывает.

Короче говоря - если учетная запись, на которой запущено ваше веб-приложение, не имеет разрешения на запись в очередь сообщений, w3wp.exe просто вылетает.Который действительно отстой в качестве диагностического пособия, но это так.

Разрешения очереди сообщений в Windows 7 управляются через Управление компьютером -> Службы и приложения -> Очередь сообщений;Я нашел подходящую очередь, дал пользователю «Пул приложений IIS» (NETWORK SERVICE) «полный контроль» и перезапустил как IIS, так и хост сервера NServiceBus, и вдруг все заработало.

...