У меня есть стандартное приложение ASP.NET 4. Внутри этого приложения также есть несколько файлов бритвы (например, test.cshtml
). Приложение ASP.NET работает, однако, если я наведу браузер на файл /test
(без расширения). IIS (статический обработчик файлов) возвращает 404.
То же самое приложение и даже отдельные файлы .cshtml
работают на локальной машине (с IIS7.5/Win7) и на сервере с (IIS7.5/Win2008R2), однако он не работает на сервере с IIS7.0/Win2008.
MVC3 установлен на обеих машинах, пулы приложений на обеих машинах интегрированы .NET 4.0.
Как работают обработчики .cshtml
? Когда IIS решает использовать обработчик статических файлов и когда обработчик .cshtml
? Что еще я должен проверить?
EDIT:
Уточнение - на самом деле я использую не весь MVC-фреймворк, а обычный старый .ASPX или PHP-файл. Никаких контроллеров, никаких маршрутов, никаких 'видов'. Я использую его для простого скрипта в дополнение к старому ASP.NET приложению.
Я думаю, что это не проблема программирования, так как работает на локальном компьютере, а скорее конфигурационная проблема - IIS на сервере Win2008 может быть настроен неправильно.
EDIT2:
(Машины с IIS7.5 работают, не работает только машина с IIS7.0. Но я не уверен, является ли это проблемой версии IIS.)
EDIT3:
На моем локальном компьютере, где он работает, я не установил никакой маршрутизации. TheCodeKing и Keith предположили, что мне нужно где-то установить маршрутизацию. Может быть, да, но этого нет в моем приложении. Она может быть установлена по умолчанию где-то в конфигурации IIS.
Есть ли у вас подсказки, где можно найти эту "неявную" маршрутизацию?
EDIT4:
Примечание: На всех компьютерах есть HttpForbiddenHandler
для *.cshtml
, так как вы не можете загрузить cshtml файл. А также есть TransferRequestHandler
для *.
. (Включены оба.)
EDIT5:
Я обнаружил, что на серверах, где он работает, мне нужен любой файл .cshtml
в веб-корневом каталоге. Если я удалю .cshtml
из веб-корня и попытаюсь вызвать любой из подкаталогов, это не сработает.
EDIT6:
Я пробовал это на двух других машинах: одна с IIS 7.5
и другая с IIS 7.0
. На IIS 7.5
он работает (обычная установка не конфигурируется), но на IIS 7.0
он не работает.
Как заставить его работать на IIS 7.0?