Я пытаюсь развернуть приложение MVC3 в IIS 7.5 На каждом маршруте я получаю HTTP 500 - внутренняя ошибка сервера:
Error Summary
HTTP Error 500.0 - Internal Server Error
The page cannot be displayed because an internal server error has occurred. Detailed Error Information
Module ManagedPipelineHandler
Notification ExecuteRequestHandler
Handler System.Web.Mvc.MvcHandler
Error Code 0x00000000
Requested URL http://www.xxxxxx.com:80/Home/Index
Physical Path C:\inetpub\wwwroot\xxxxxx.com\Home\NoAccess
Logon Method Anonymous
Logon User Anonymous
Failed Request Tracing Log Directory C:\inetpub ..
Я могу запрашивать простые файлы HTML или обычные файлы aspx со встроенным кодом. Включена трассировка невыполненных запросов, и трассировка запросов показала одно предупреждение:
131. -MODULE_SET_RESPONSE_ERROR_STATUS
ModuleName ManagedPipelineHandler
Notification 128
HttpStatus 500
HttpReason Internal Server Error
HttpSubStatus 0
ErrorCode 0
ConfigExceptionInfo
Notification EXECUTE_REQUEST_HANDLER
ErrorCode The operation completed successfully. (0x0)
Когда я пытаюсь воссоздать сайт в IIS и проверяю соединение, я получаю сообщение об ошибке «Не удается проверить доступ к пути». Я дал полный контроль над сетевой службой, и удостоверение пула приложений также является сетевой службой.
Платформа установлена на 4.0, управляемый режим конвейера = интегрированный.
Любые идеи .. или требуется дополнительная информация?
Взгляните сначала сюда: https://stackoverflow.com/questions/5349867/error-handling-in-asp-net-mvc3
Обновление: если это не поможет - прочтите это обсуждение (особенно последний пост на странице 2): http://forums.asp.net/t/1657582.aspx/2/10?Error+500+0+when+MVC+runs+on+IIS7
Обновление 2: это тоже выглядит очень многообещающим: http://forums.asp.net/t/1652026.aspx/1
удалять <add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />
из httpHandlers
и добавить <add verb="POST,GET" name="scripthandlerajaxFactory" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />
к обработчики
Пожалуйста, проверьте в приложении, возможно, это предполагаемое поведение.
У меня была точно такая же проблема, я проверил все очевидные разрешения (разрешение IIS APPPOOL \ AppPoolName для файловой системы и базы данных, доступ прошедших проверку пользователей к каталогам «Сценарии» и «Контент») и все равно не повезло. Даже Process Monitor не помог, логов сбоев доступа не было.
Решение было простым - 403.0 был правильным кодом ответа. Я считал, что веб-приложение должно возвращать стандартное представление, в котором говорится, что «ваша учетная запись домена не указана в базе данных, поэтому уходите» (как и все приложения в этом проекте, это соглашение, которое мы используем). Но для этого приложения разработчик сделал другое и вернул простой 403.0, который IIS «украсил».