Ошибка использования раздела, зарегистрированного как allowDefinition = 'MachineToApplication', за пределами уровня приложения - PullRequest
0 голосов
/ 27 марта 2009
Configuration Error 
Description: An error occurred during the processing of a configuration file
required to service this request. Please review the specific error details 
below and modify your configuration file appropriately. 

Parser Error Message: It is an error to use a section registered as
allowDefinition='MachineToApplication' beyond application level.  
This error can be caused by a virtual directory not being configured 
as an application in IIS.

Source Error: 

Line 36:             ASP.NET to identify an incoming user. 
Line 37:         -->
Line 38:        <authentication mode="Windows"/>
Line 39:        <!--
Line 40:             The <customErrors> section enables configuration 

Существует множество ссылок на эту ошибку в Интернете, но все они повторяют одни и те же 2 предложения, ни одно из которых не применимо в моем случае.

Вот мой сценарий.

У меня есть Server 2003 с IIS 6. На веб-сайте по умолчанию есть 4 виртуальных каталога, которые все настроены как отдельные приложения. Некоторые из них являются веб-службами, некоторые являются простыми сайтами ASP.NET. 3 из них работают просто отлично, один - извне (я не получаю эту ошибку, когда захожу на сервер и просматриваю localhost).

Все приложения совместно используют один и тот же пул приложений, и все они имеют свои собственные web.configs. Я посмотрел на свойства в большой длине, и я не нашел разницы, которая объясняет ошибку. настройки безопасности такие же. Я проверил права доступа к файлам и папкам как в MMC, так и в файловой системе. Учетная запись пула приложений (NETWORK SERVICE) и анонимный веб-пользователь имеют необходимые права доступа, и они одинаковы для всех приложений. В обоих приложениях включен анонимный доступ и включена встроенная защита.

Опять же, я получаю вышеуказанную ошибку, только когда захожу на страницу снаружи брандмауэра как анонимный пользователь. Когда я вошел в систему локально, страница обслуживается просто отлично. Что заставляет меня думать, что проблема связана с безопасностью / олицетворением.

Приложение, которое не работает, было создано и развернуто из VS 2008 и .Net 3.5. В файле web.config есть вещи, которых нет у других, более старых приложений. Я пытался постепенно удалить настройки из web.config, но пока сайт больше не работал, безрезультатно.

Что происходит?

1 Ответ

0 голосов
/ 27 марта 2009

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

...