我们的网站是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网址问题?
答案 0 :(得分:0)
asp.net-mvc和webforms共享路由系统。您应该制作混合WebApp,部分WebForm和MVC。我最近做了类似的事情,其中webforms是主应用程序,MVC是嵌套的应用程序。在这种情况下,整个站点必须只有一个global.asax和一个web.config。 MVC可以与WebForm存在于同一目录中,但只与他们共享内容。
我按照 Scott Hanselman 的指南来完成这项工作。
答案 1 :(得分:0)
托管服务提供商使用WebsitePanel,通过它我可以为包含MVC应用程序的文件夹创建虚拟目录。 MVC URL现在被路由到Isapi处理程序,不再返回404(找不到文件)。所以,我想我会在这里结束这个话题。
简而言之,为MVC应用程序创建虚拟目录解决了这个问题。