【问题标题】:IIS 8.5 Two websites, one in subfolder of the otherIIS 8.5 两个网站,一个在另一个的子文件夹中
【发布时间】:2016-06-16 08:32:45
【问题描述】:

情况

  • 我有两个网站,我们称它们为 MAIN 和 SVC(一种 SOAP 服务)。
  • 两者都是用 ASP.NET MVC 编写的。
  • 它们托管在(例如)https://prog.example.com

我想要什么

我的问题

如果 MAIN 可以通过 https://prog.example.com/main 访问,我可以让它工作,这样两个 URL 是不同的。当 SVC 是 MAIN 的子 URL 时(请参阅我想要的),它不再可访问。我的服务代码失败了,因为它找不到一些类了。

现状

具有两个子应用程序(main、svc)的站点可以正常工作,但 MAIN 具有子文件夹 /main。当我将站点直接指向 MAIN 的文件夹(没有子应用程序)时,可以根据需要访问 MAIN,但 SVC 会抛出我的问题中提到的异常。

当没有像 /main 这样的子文件夹可以直接访问主网站时,如何配置 IIS 以使我的服务仍然有效?

我的想法是将 MAIN 保留在 /main 中,但将基本 url 重定向到 /main。这导致了 /main/main/main/main/... 的循环。

无法使用例如https://prog.example.comhttps://service.example.com(以便绑定可能因子域而异)。

【问题讨论】:

    标签: asp.net-mvc iis-8.5


    【解决方案1】:

    这是完全可能的。您只需在 IIS 中的 MAIN 站点下将 SVC 添加为虚拟应用程序。

    唯一要记住的是 Web.config 文件是继承的,所以 MAIN 下的任何应用程序都将继承 MAIN 的 Web.config,除了它自己的。这通常会导致冲突。您要么需要解决上述冲突,要么在 MAIN 的 Web.config 的任何导致问题的部分禁用继承。例如:

    <connectionStrings inheritInChildApplications="false">
        ...
    </connectionStrings>
    

    不幸的是,无法简单地禁用整个 Web.config 的继承,因此您必须逐个节点地执行此操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-07
      • 1970-01-01
      • 1970-01-01
      • 2013-02-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多