Публикация простого веб-сервиса .NET приводит к IIS «Ошибка использования раздела, зарегистрированного как allowDefinition = 'MachineToApplication' ...» - PullRequest
0 голосов
/ 02 февраля 2012

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

Я публикую простой веб-сервис .NET (.asmx), и когда я проверяю ссылку в производственной среде, меня встречает известная ошибка:

"Ошибка использовать раздел, зарегистрированный как allowDefinition = 'MachineToApplication' за пределами уровня приложения. это ошибка может быть вызвана тем, что виртуальный каталог не настроен как приложение в IIS. "

Я уже прошел основы, а именно эти три самых популярных подсказки:

1 / Каталог был создан как «Приложение» путем щелчка правой кнопкой мыши в IIS и т. Д. Он работает в собственном пуле приложений.

2 / Нет подкаталога, содержащего лишние файлы web.config. Это всего лишь один файл web.config.

3 / Я убедился, что пространство имен совпадает с определением веб-службы, и это все основные вещи. В любом случае, проект работает нормально локально, а также работает нормально при развертывании на тестовом сервере. Это наводит меня на мысль о «проблеме разрешений» на сервере prod, но я в растерянности, так как нормальные сайты IIS работают нормально.

Итак, я думаю, что я спрашиваю: есть ли четвертая по популярности причина этой ошибки, которую я пропускаю?

О, приложение веб-службы настроено на разрешение вызовов веб-службы для всех версий .NET, установленных в IIS.

Кроме того, я был бы рад оставить позади этот устаревший подход и отказаться от .asmx для WCF; однако это кусок кода, который мне поручен в настоящее время.

Спасибо!

1 Ответ

1 голос
/ 02 февраля 2012

Вы должны убедиться, что в вашем пуле приложений выбрана правильная версия .net framework. Вы можете проверить это, зайдя в диспетчер IIS и перейдя в узел Пулы приложений. Щелкните правой кнопкой мыши пул приложений, который прикреплен к веб-сайту с вашим сервисом, и выберите «Основные настройки» (этот вариант также должен быть в левом столбце окна). Затем из выпадающего списка выберите правильную версию фреймворка. Вам может потребоваться создать новый пул приложений специально для дочерних приложений, если они должны работать в разных версиях платформы.

Если родительский сайт использует .net 4.0, ваш веб-сервис, вероятно, наследует это или наоборот (2.0).

Короче, попробуйте переключить ваш пул приложений на другую версию фреймворка и посмотрите, очистит ли это его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...