У меня приложение ASP.NET MVC 2 работает нормально как на IIS7, так и на сервере веб-разработки VS.Недавно я добавил области на сайт, и они тоже отлично работают на IIS7 и сервере веб-разработки VS.
Однако при развертывании этого сайта на тестовом сервере IIS6 под управлением win2k3 области больше не работают.Все пути, использующие маршруты по умолчанию для остальной части сайта, работают нормально (например, / Home / Index /), однако при переходе в область (например, / Admin / Users / Index /) я получаю HttpException:
System.Web.HttpException: сервер не может получить доступ к каталогу приложения «C: \ InetPub \ MobileWeb \ Admin \».Каталог не существует или недоступен из-за настроек безопасности.
C:\InetPub\MobileWeb\
является корневым каталогом моего сайта.Если я добавлю каталог Admin в файловую систему, я получу различные ошибки загрузки сборок, но я почти уверен, что этого не произойдет, если я смогу заставить области работать правильно.
Все, что я сделал (и делал это много раз раньше), чтобы включить ASP.NET MVC на IIS6, нужно было добавить обработчик подстановочных знаков, который сопоставляется с C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
, и снять флажок «проверять, существует ли файл»
Наш сервер сборки автоматически развертывает этот код путем компиляцииПроект развертывания VS 2008, а затем скопировать вывод на наш тестовый сервер.Я нашел эту статью , у которой есть похожая проблема, но если я правильно понимаю решение, оно не сработало.
Есть ли что-то уникальное, что мне нужно, чтобы заставить работать районына IIS6?
Обновление - Вот полная трассировка стека:
[HttpException (0x80004005): Server cannot access application directory 'C:\InetPub\MobileWeb\'. The directory does not exist or is not accessible because of security settings.]
System.Web.HttpRuntime.EnsureAccessToApplicationDirectory() +8932031
System.Web.HttpRuntime.HostingInit(HostingEnvironmentFlags hostingFlags) +87
[HttpException (0x80004005): Server cannot access application directory 'C:\InetPub\MobileWeb\'. The directory does not exist or is not accessible because of security settings.]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +8894095
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +85
System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) +259
Обновление Я попытался опубликовать на тестовом сервере, используя обавеб-сайт публикации VS2008 и проект веб-развертывания VS2008 (и копирование файлов вручную) - оба имеют одну и ту же проблему.