Я занимаюсь разработкой веб-сайта 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 на сервере веб-хостинга.