在网站内托管MVC应用程序

时间:2010-06-08 11:33:24

标签: asp.net-mvc web-applications asp.net-mvc-routing

我在IIS 6.0上运行了一个网站(不是在Visual Studio中的Web应用程序,您可以获得两个选项 - 创建一个网站/项目)。现在我想在MVC架构中开发一些功能。 所以我在visual studio中创建了一个MVC应用程序,一切都在localhost上作为一个单独的应用程序正常工作。现在我想在我已部署的网站内托管这个MVC应用程序。

我在IIS 6.0的默认网站中创建了一个虚拟目录(MVCDir)。在根文件夹中的global.asax文件我添加了路由功能 -

Shared Sub RegisterRoutes(ByVal routes As RouteCollection)
    routes.Ignore("{resource}.axd/{*pathInfo}")
    routes.Ignore("{resource}.aspx/{*pathInfo}")



    routes.MapPageRoute("Default4", "{controller}/{action}/{id}", "~/MVCDir", False, New RouteValueDictionary(New With {.controller = "Home", .action = "Index", .id = Mvc.UrlParameter.Optional}))

End Sub

***注意 - 如果我写routes.ignoreRoute而不是路由,请忽略它 - IgnoreRoute不是System.Web.RoutingCollection *

的成员

我在application_start函数中调用了这个路由函数 现在我运行domain.com/home/index

如何解决这个问题?  它说资源未找到

1 个答案:

答案 0 :(得分:0)

这可能是您的子应用程序从父级继承配置的问题。在尝试将应用程序放在网站下时,我遇到了类似的问题。

您需要在<system.web>标记中<location>包裹inheritInChildApplications="false"

示例:

<location path="." inheritInChildApplications="false">
  <system.web>
    <!-- ... -->
  </system.web>
</location>

Here你有更详细的解释。