【问题标题】:IIS Host Asp.Net MVC application in sub-folder子文件夹中的 IIS 主机 Asp.Net MVC 应用程序
【发布时间】:2019-12-08 10:01:26
【问题描述】:

我试图在 IIS 中的 drupal 网站的子文件夹下托管我的 c# asp.net MVC 应用程序。

我真正想要实现的是以下示例 当我访问这个路径 www.example.com 时,drupal 网站应该打开,当我访问 www.example.com/subfolder 时,MVC 应用程序应该打开

所以我在drupal网站内创建了一个应用程序,如下图所示

结果是当我访问 www.example.com/subfolder 时,会调用默认控制器和默认操作,并显示 MVC 应用程序的默认视图。 话虽如此,它不适用于其他视图。 每当我尝试访问 www.example.com/subfolder/Home/SecondAction 时,它只会显示 404 错误。 即使我尝试通过 www.example.com/subfolder/Home/Index 访问默认视图也不起作用并显示 404

我已经尝试了控制器的路由前缀和路由属性,并且我已经尝试了这些路由绑定,它们都不起作用

//routes.MapRoute(
        //  name: "EDF",
        //  url: "{controller}/{action}/{id}/{edf*}",
        //  defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        //);

        //routes.MapRoute(
        //    "SubFolder", // Route name
        //    "EDF/{controller}/{action}",
        //    new { controller = "Home", action = "Index" },
        //    new[] { "EDF.EDF.Controllers" }
        //);

        //  routes.MapRoute(
        //    name: "EDF",
        //    url: "EDF/{controller}/{action}/{id}",
        //    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        //);


      //  routes.MapRoute(
      //    name: "EDF",
      //    url: "{EDF}/{controller}/{action}/{id}",
      //    defaults: new { EDF = UrlParameter.Optional, controller = "Home", action = "Index", id = UrlParameter.Optional }
      //);

我知道其中一些甚至没有意义,但我很绝望 这一点,什么都试过了。

非常感谢任何想法、建议和解决方案

【问题讨论】:

  • 最简单的方法是为该 ASP.NET MVC 应用程序设置一个单独的站点,然后使用带有一些规则的 ARR 来桥接 URL,docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/…
  • 我怀疑配置的继承,我不知道使用 drupal 你将如何处理它到你的子应用程序。但在 .net 中,我们只需清除我们不想继承的配置设置。
  • @LexLi 非常感谢。目前我无法修改结构以使 ARR 成为主要网站“example.com”或在其上安装新东西,但您的建议将在未来的项目中帮助我。
  • @jomsk1e 谢谢。正确,但请您向我提供您在这种情况下所做的事情的链接或来源。我会尝试一下,以防它也适用于 drupal。
  • 您是否在 web.config 文件中启用了 url 重写?如果您启用了 url 重写规则,请发布 url 重写规则。我猜这可能会导致您的 MVC 应用程序无法运行。

标签: asp.net asp.net-mvc iis subdirectory host


【解决方案1】:

不需要更改您的申请路线。添加一个新网站并将物理路径更改为您发布的文件位置。

【讨论】:

  • 感谢您的回答。我已经这样做了。就像我在帖子中提到的那样。每当我尝试使用控制器/操作路由访问它时,它都会给出 404。它仅适用于 example.com/subfolder 不适用于 example.com/subfolder/Home/index
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-23
  • 1970-01-01
  • 2011-09-27
  • 2013-09-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多