Почему я получаю сообщение «Указанный запрос не может быть выполнен из текущего пула приложений»? - PullRequest
3 голосов
/ 20 января 2012

Совершенно не уверен, почему я вижу эту ошибку.Я перехожу к своему окну входа в систему следующим образом http://test.staging.com/mywebsite/Login

Мой вид входа в систему был просто переделан с использованием MVC, но я видел это же сообщение об ошибке при переходе на страницу aspx ...

ЕслиЯ использую http Я получаю сообщение об ошибке Указанный запрос не может быть выполнен из текущего пула приложений .Если я использую https://test.staging.com/mywebsite/Login, Я в порядке.Если я не укажу протокол, test.staging.com / mywebsite / Login , я также получу сообщение об ошибке

Произошла ли ошибка под обложками и моей пользовательской страницей ошибокне может быть показано, как обсуждено здесь ?

Каковы другие причины этой ошибки?

Ответы [ 7 ]

2 голосов
/ 24 февраля 2012

Это может быть связано с тем, что вы используете разные версии ASP.NET для одного или нескольких приложений в пуле.

  1. Убедитесь, что все приложения в пуле используют одну и ту же версию ASP (например,ASP 2.0.50727)
  2. Если вы только что добавили новое приложение, попробуйте на мгновение изменить приложение на другую версию ASP, а затем вернуться к той же версии.У меня возникла проблема, когда отображаемая версия была правильной, но под капотом использовалась другая версия!
  3. Проверьте журнал событий в разделе «Приложение», чтобы получить более подробную информацию об ошибке.
2 голосов
/ 20 января 2012

Сообщение будет вызвано перенаправлением вашей страницы на сервер на страницу, обслуживаемую другим пулом приложений. Например, в вашей ссылке страница с ошибкой.

2 голосов
/ 20 января 2012

Это обычно означает, что ваши пользовательские ошибки настроены для работы в качестве другого AppPool.

Вы можете прочитать больше на MSDN .(См. Раздел «Использование пользовательских ошибок из другого пула приложений»).

Существует два способа исправить это поведение.Первый, возможно, не тот, который вас интересует, поскольку он потребует от вас изменения текущей архитектуры и запуска обоих сайтов в одном пуле приложений (например, в одном и том же пространстве памяти рабочего процесса).Для этого просто переместите виртуальный каталог / errors для запуска в тот же пул приложений, что и сайт, для которого он обслуживает пользовательскую ошибку.

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

Информацию об исправлении ключа реестра см. В статье.

Это также может означать, что вы используете что-то вроде Server.Transfer для страницы, которая находится в другом AppPool.

1 голос
/ 19 марта 2013

Я знаю, что это старая ветка, но я наткнулся на нее и нашел другое решение. Вот что сработало для меня: убедитесь, что ваше приложение правильно обрабатывает файлы .asmx

Из IIS: Щелкните правой кнопкой мыши по вашему проекту> Свойства> Конфигурация

При необходимости добавьте расширение файла .asmx, сопоставленное с aspnet_isapi.dll

Ограничение: «ПОЛУЧИТЬ, ГОЛОВУ, ПОСТ, ОТЛАДКУ» и перезапустить.

0 голосов
/ 12 декабря 2018

В моем случае приложение использовало несуществующий пул приложений.Понятия не имею, как это произошло.

0 голосов
/ 09 июля 2018

В моем конкретном случае я получил эту ошибку при попытке обслуживать веб-сайт с контентом (не ASP.NET), пока он был приложением. Правый щелчок по виртуальной папке и удаление приложения исправили ее для меня.

0 голосов
/ 26 июля 2013

Поскольку я не могу комментировать ответ vcsjones , я добавлю его сюда.Значение DWORD IgnoreAppPoolForCustomErrors необходимо установить в HKLM \ SYSTEM \ CurrentControlSet \ Services \ W3SVC \ Параметры vs HKLM \ SYSTEM \ CurrentControlSet \ Services \ W3SVC, на которые есть ссылки в этой статье Technet.Установите значение 1 и выполните iisreset, и все готово.

Источник Сообщение в блоге

...