IIS / ASP.NET应用程序和子应用程序:如何在不重定向的情况下使用两个主机名?

时间:2009-03-17 22:22:58

标签: .net asp.net iis iis-6

我们的服务器上有一个Web应用程序,位于目录

 c:\inetpub\wwwroot\myapp

在myapp目录中,我们有一个名为mysubapp的子目录。 mysubapp有自己的bin目录,需要myapp\bin目录中的DLL

所以目录如下:

c:\inetpub\wwwroot\myapp
c:\inetpub\wwwroot\myapp\bin
c:\inetpub\wwwroot\myapp\mysubapp
c:\inetpub\wwwroot\myapp\mysubapp\bin

我们目前使用主机标头设置IIS,以便myapp.mycompany.com指向c:\inetpub\wwwroot\myapphttp://mysubapp.mycompany.com重定向到http://myapp.mycompany.com/mysubapp

我们希望mysubapp.mycompany.com指向c:\inetpub\wwwroot\myapp\mysubapp,而网址不是http://myapp.mycompany.com/mysubapp

我尝试设置主机标头指向c:\inetpub\wwwroot\myapp\mysubapp而不使用重定向,但是当我们这样做时,我们收到一条错误消息,指出找不到某些DLL文件,找不到DLL文件c:\inetpub\wwwroot\myapp\bin中的那些。此错误是有道理的,因为应用程序无法在其应用程序目录之外找到DLL。

我们有什么办法可以配置IIS来实现这个目的吗?

6 个答案:

答案 0 :(得分:4)

如果我正确理解了您的问题,我能想象的唯一可行的设置就是采用您提到的方法(主机标头指向c:\inetpub\wwwroot\myapp\mysubapp而不使用重定向)并在主要应用程序中包含主应用程序的DLL文件夹的bin目录。

答案 1 :(得分:2)

答案 2 :(得分:1)

虽然答案未考虑主机标头,但this link中提议的解决办法可能会有用。

答案 3 :(得分:0)

不涉及网址重写的解决方案如下:

  1. 在DNS中为myapp.mycompany.com和mysubapp.mycompany.com分配不同的IP地址,但它们应映射到同一主机(Robert在下面说明了如何使用,或使用2个NIC)。
  2. 在IIS中创建2个网站(非虚拟目录)。
  3. 将第一个映射到myapp.mycompany.com的IP地址并指向c:\ inetpub \ wwwroot \ myapp
  4. 将第二个映射到mysubapp.mycompany.com的IP地址并指向c:\ inetpub \ wwwroot \ myapp \ mysubapp
  5. ???
  6. 利润:)

答案 4 :(得分:0)

正如DreamSonic所说,为每个应用程序使用不同的网站,每个应用程序使用不同的IP地址。要向服务器添加多个IP,请使用“网络属性”中“Internet协议(tcp / IP)”对话框中的“高级”按钮。在IIS中,将网站设置为响应指定的IP而不是默认的[All Unassigned]。您不需要两个(或更多)NIC。

除此之外,你需要进行一些网址重写,这可能很痛苦,因为你的应用中的所有链接都需要“修复”,否则你最终会在网页中找到不需要的网址。客户的浏览器。

答案 5 :(得分:0)

如果你想在不同的域名下发布/ mysubapp,我认为保持在myapp下的意义不大。

将应用程序设置为单独的Web应用程序,并将dll从myapp复制到mysubapp。因为它是Asp.Net,你甚至可以通过web.config文件做一些程序集绑定魔术。