Внутренняя ошибка сервера из-за блокировки конфигурации при развертывании моего приложения ASP.NET MVC на моем веб-узле - PullRequest
6 голосов
/ 26 октября 2009

Я занимаюсь разработкой веб-сайта ASP.NET MVC на локальном компьютере с Windows Server 2008 / IIS7 и сейчас пытаюсь развернуть его на своем провайдере веб-хостинга ASPnix . Я использую их службу общего веб-хостинга и был размещен на сервере IIS7, который, как утверждают, поддерживает ASP.NET MVC.

Однако, когда я развертываю приложение на их серверах, я получаю «Внутреннюю ошибку сервера».

Вот сводка ошибок :

Ошибка HTTP 500.19 - Внутренняя ошибка сервера

Запрашиваемая страница недоступна, поскольку соответствующие данные конфигурации для страницы недействительны.

Вот соответствующие части Подробная информация об ошибках :

Модуль: IIS Web Core

Уведомление: BeginRequest

Обработчик: еще не определено

Код ошибки: 0x80070021

Ошибка конфигурации: этот раздел конфигурации нельзя использовать по этому пути. Это происходит, когда раздел заблокирован на родительском уровне. Блокировка либо по умолчанию (overrideModeDefault = "Deny"), либо устанавливается явно с помощью тега местоположения с помощью overrideMode = "Deny" или устаревшего allowOverride = "false".

И Источник конфигурации выглядит так:

144:        </modules>
145:        <handlers>
146:            <remove name="WebServiceHandlerFactory-Integrated"/>

Ошибка связана с тем, что в моем файле web.config есть раздел system.webServer , в котором есть обработчики дочерний раздел. Раздел system.webServer является точным разделом конфигурации, который был задан по умолчанию при первом создании веб-сайта ASP.NET MVC в Visual Studio. Над ним есть следующий XML-комментарий:

<!-- 
The system.webServer section is required for running ASP.NET AJAX under Internet
Information Services 7.0.  It is not necessary for previous version of IIS.
-->

Я убираю обработчики дочерний раздел, и ошибка 500 исчезает. Конечно, этот раздел необходим для правильной работы приложения ASP.NET MVC в IIS7, поэтому простое его использование приводит только к другим ошибкам (в данном случае 404 ошибки, поскольку маршрутизация не работает).

Инженеры службы поддержки ASPnix утверждают, что ASP.NET MVC правильно установлен и настроен в IIS7 на их серверах. Я не говорю, что не верю им, поскольку это первый сайт ASP.NET MVC, который я создал и развернул. Тем не менее, я не могу придумать ничего, что я мог бы сделать, чтобы сделать эту работу, так как это кажется проблемой конфигурации на уровне, к которому у меня нет доступа.

Эта проблема пахнет так, как будто это обычная проблема для людей, пытающихся развернуть ASP.NET MVC на хостинг-провайдера. Что-нибудь натолкнулось на это либо с ASPnix, либо с другими веб-хостингами, и мы надеемся найти решение?

пс

Одна странная вещь. Исследуя эту проблему в Интернете, я обнаружил, что многие люди говорят, что им пришлось установить атрибут overrideModeDefault для своих файлов applicationHost.config IIS7 с «Запретить» на «Разрешить». Тем не менее, мой локальный сервер разработки имеет этот параметр «Запретить», и все работает нормально. Тем не менее, у меня нет доступа к файлу applicationHost.config на сервере веб-хостинга.

Ответы [ 3 ]

7 голосов
/ 27 октября 2009

Открыть IIS Management. Под главным узлом сервера выберите открыть делегирование функций (в разделе «Управление»)

«Отображения обработчика» вместо «Только чтение» вместо «Только чтение»

Похоже, ваш хостинг-провайдер излишне заблокировал IIS.

Мне удалось воссоздать проблему на моем локальном сервере IIS 7.5.

См. this для сброса глобальных настроек.

0 голосов
/ 03 марта 2010

Ссылка на http://www.winservermart.com/Howto/HTTP_Error_500_19_IIS_7.aspx не решает проблему. «Делегирование сброса» создает исключение в файле web.config только для конкретного домена, которое заставляет сайт работать, но не отвечает на вопрос, как установить его постоянно в масштабе всей системы. Так что не стыдно, потому что мы знаем решение и правильно настроили все настройки. И рекламировать здесь некоторых других хостов бессмысленно, у нас есть тонны клиентов, которые работают с wh4l и описывают, насколько хороши их перегруженные серверы.

-Polk

0 голосов
/ 27 октября 2009

проверьте, правильно ли вы развернули приложение: Развертывание сервера ASP.NET (IIS 7)

...