IIS为ASP.NET MVC3文件返回404(.cshtml)

TN.*_*TN. 9 asp.net iis asp.net-mvc razor asp.net-mvc-3

我有标准的ASP.NET 4应用程序.在这个应用程序内部也有很少的剃刀(例如test.cshtml)文件.但是,如果我将浏览器指向/test文件(没有扩展名),ASP.NET应用程 IIS(静态文件处理程序)返回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从Web根目录中删除并尝试从子目录中调用任何内容,它将无法正常工作.

EDIT6:

我在另外两台机器上尝试过这种机器:一台机器用IIS 7.5另一台机器IIS 7.0.在IIS 7.5它的工作原理(普通装任何配置),但IIS 7.0它不工作.

如何使它在IIS 7.0上运行?

TN.*_*TN. 6

好极了!经过几天的挣扎,我找到了它!:))

使其在IIS 7.0上运行的一种方法是启用runAllManagedModulesForAllRequests:

<modules runAllManagedModulesForAllRequests="true" />
Run Code Online (Sandbox Code Playgroud)

(尽管在IIS 7.5上它甚至可以使用默认值runAllManagedModulesForAllRequests="false".)

不要问我为什么:)也许有人可以解释一下.


Eri*_*ter 5

不确定这是否是您的特殊问题,但听起来好像ASP.NET Web Pages没有运行(MVC 3及更高版本依赖于Razor和其他东西的Web页面).有时,事情可能会被安装在破坏ASP.NET和IIS的某些配置的订单中,这反过来可能使Web页面没有运行,并且不会执行任何cshtml文件.

尝试运行aspnet_regiis/i来清理它们.


归档时间:

查看次数:

22271 次

最近记录:

11 年,6 月 前