IIS 7上的MVC 3为MVC无扩展URL请求返回404

时间:2013-07-31 13:44:38

标签: asp.net asp.net-mvc asp.net-mvc-3 iis iis-7

我们的网站是asp.net网络表单和MVC 3的混合。该网站是以网络形式开发的,除了单独的MVC应用程序,该应用程序存储在网站根目录中的单独目录中并具有其拥有web.config。 IIS 7服务器正确提供了Web表单页面(aspx),但MVC URL正在返回 404 - 找不到文件或目录。

例如,假设该网站 www.abc.com ,并使用 www.abc.com/aaa/controller/action 访问MVC应用程序,其中< strong> aaa 是MVC应用程序的根目录,包含自己的web.config。网络表单网址(比如www.abc.com/feedback.aspx)正在运行,但MVC网址(例如(www.abc.com/aaa/Controller/Action)返回404。

我已从我的共享托管服务提供商处确认,该网站正在运行 .net 4 Integrated pipeline Mode 应用程序池,因此默认情况下,IsapiModule应处理无扩展名网址,不需要任何额外的配置。

我怀疑作物是否应该将MVC应用程序根文件夹(上例中的 aaa )转换为单独的应用程序?

任何猜测,解决上述MVC网址问题?

2 个答案:

答案 0 :(得分:0)

共享路由系统。您应该制作混合WebApp,部分WebForm和MVC。我最近做了类似的事情,其中​​是主应用程序,MVC是嵌套的应用程序。在这种情况下,整个站点必须只有一个global.asax和一个web.config。 MVC可以与WebForm存在于同一目录中,但只与他们共享内容。

我按照 Scott Hanselman 的指南来完成这项工作。

答案 1 :(得分:0)

托管服务提供商使用WebsitePanel,通过它我可以为包含MVC应用程序的文件夹创建虚拟目录。 MVC URL现在被路由到Isapi处理程序,不再返回404(找不到文件)。所以,我想我会在这里结束这个话题。

简而言之,为MVC应用程序创建虚拟目录解决了这个问题。