IIS 8.5的两个网站,一个在其他
问题描述:
形势
- 的子目录下,我有两个网站,让我们称他们主要和SVC(SOAP服务)。
- 这两个都是用ASP.NET MVC编写的。
- 它们托管在(例如)https://prog.example.com上。
我想要什么
- 主要应该可以访问如https://prog.example.com
- SVC的服务应该可以访问如https://prog.example.com/svc/myservice.svc(=>主要的子文件夹)
我的问题
我可以得到这个工作,如果主要是https://prog.example.com/main可及,这样这两个URL是不同的。当SVC是来自MAIN的子URL(请参阅我想要的)时,它不再可用。我的代码服务失败,因为它无法再找到一些类。IIS 8.5的两个网站,一个在其他
现状
网站有两个子应用程序(主,SVC)的作品,但主要有子文件夹/主。当我将站点直接指向MAIN文件夹(没有子应用程序)时,MAIN可以根据需要到达,但是SVC抛出我的问题中提到的异常。
如何在没有像/ main这样的子文件夹的情况下直接访问主网站时配置IIS,使我的服务仍然有效?
我的想法是将main保存在/ main中,但将基本url重定向到/ main。这导致了/ main/main/main/main/...
不可能使用例如https://prog.example.com和https://service.example.com(以便绑定可能因子域而有所不同)。
答
完全有可能。您只需将SVC添加为IIS中MAIN站点下的虚拟应用程序。
唯一需要记住的是Web.config文件是继承的,因此MAIN下的任何应用程序都将继承MAIN的Web.config,除了它自己的。这通常会导致冲突。您将需要解决所述冲突或禁用导致问题的MAIN的Web.config的任何部分上的继承。例如:
<connectionStrings inheritInChildApplications="false">
...
</connectionStrings>
不幸的是,有没有办法简单地禁用继承整个Web.config文件,所以你必须要做到这一点的一个节点到节点的基础。