【问题标题】:host MVC app inside a website在网站内托管 MVC 应用程序
【发布时间】:2010-06-08 11:33:24
【问题描述】:

我有一个在 IIS 6.0 上运行的网站(不是 Web 应用程序 - 在 Visual Studio 中您有两个选项 - 创建网站/项目)。现在我想在 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

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

【问题讨论】:

  • 糟糕,抱歉,误解了 - 您是在询问将请求从一个 IIS 应用程序转发到另一个应用程序吗?但是我关于通配符请求处理程序的观点是:确保您已经为根应用程序注册了通配符请求处理程序并且“检查文件是否存在”已关闭。

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


【解决方案1】:

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

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

例子:

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

Here你有更详细的解释。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-18
    • 2022-11-27
    • 2019-04-06
    • 1970-01-01
    • 1970-01-01
    • 2011-01-11
    相关资源
    最近更新 更多