我有標準的ASP.NET 4應用程序。在這個應用程序中,也有少量剃鬚刀(例如test.cshtml
)文件。但是,如果我將瀏覽器指向/test
文件(不帶擴展名),ASP.NET應用程序可以正常工作。 IIS(靜態文件處理程序)返回404.IIS爲ASP.NET MVC3文件(.cshtml)返回404
相同的應用程序和獨立的.cshtml
文件正在本地計算機(使用IIS7.5/Win7)和服務器使用(IIS7.5/Win2008R2),但它不能使用IIS7.0/Win2008的服務器。
MVC3安裝在兩臺機器上,兩臺機器上的應用程序池都集成了.NET 4.0。
.cshtml
處理程序如何工作?當IIS決定使用靜態文件處理程序並處理.cshtml
時?我還應該檢查什麼?
編輯:
澄清 - 我沒有實際使用整個MVC框架,它就像普通老式.ASPX或PHP文件。沒有控制器,沒有路線,沒有'觀點'。除了舊的ASP.NET應用程序之外,我正在將它用於一個簡單的腳本。
我認爲這不是一個編程問題,因爲它在本地計算機上工作,而是一個配置問題 - Win2008服務器上的IIS可能沒有正確配置。
EDIT2:
(機械與IIS7.5的作品,只能用IIS7.0機不工作,但我不知道它是否是IIS版本的一個問題。)
EDIT3:
在我在那裏工作的本地計算機上,我還沒有設置任何路由。 TheCodeKing和Keith建議我需要有一個路由。也許是的,但它不在我的應用程序中。它可能會在IIS配置中默認設置。
你有什麼提示可以找到這個'隱式'路由嗎?
EDIT4:
注:在所有計算機上有HttpForbiddenHandler
爲*.cshtml
,因爲你不能下載CSHTML文件。 *.
也有TransferRequestHandler
。 (兩者都啓用。)
EDIT5:
我發現了服務器,在那裏工作,我需要有任何.cshtml
文件在網站根目錄。如果我從Web根目錄中刪除.cshtml
,並嘗試從子目錄中調用任何子目錄,則不起作用。
EDIT6:
我想,在另一個兩臺機器:一個IIS 7.5
,另一個IIS 7.0
。在IIS 7.5
它工作(純安裝沒有配置),但在IIS 7.0
它不起作用。
如何使它在IIS 7.0上工作?
我不確定我的理解。在MVC中,你可以通過路由引擎調用一個控制器方法,使用[http:// mydomain/mycontroller/mycontrollermethod](http:// mycontroller/mycontrollermethod)等形式的URL。控制器方法調用適當的cshtml視圖。你爲什麼要直接打開視圖? –
另請參閱http://stackoverflow.com/questions/4942634/asp-net-mvc-razor-how-to-directly-access-cshtml-page –
由於它不是一個典型的MVC應用程序的'視圖',但而是一個簡單的腳本。 –