IIS возвращает 404 для файла ASP.NET MVC3 (.cshtml)

У меня есть стандартное приложение 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?

9
задан TN. 16 September 2011 в 16:33
поделиться