通过不同的绑定访问IISnetworking应用程序

我在Windows Server 2008 R2上的IIS 7.5上托pipe了多个Web应用程序。 服务器有一个IP地址,我使用主机名来区分绑定到每个应用程序。 服务器有不同的DNS别名匹配的主机名,所以在公司networking内的所有工作正常。 例如:

  • 当我键入http:// intranet时 ,“intranet”通过DNSparsing到服务器的IP,并向IIS发出请求,IIS使用与“intranet”主机名的绑定,后者映射到Intranet Web应用程序。

问题是,我还希望用户能够通过使用服务器的IP(公共的)来访问公司networking外部的应用程序。 这意味着IIS还应该识别以http://xxx.xxx.xxx.xxx/intranetforms提出的对应于Intranet Web应用程序的请求。 我发现实现这一目标的唯一方法是将所有Web应用程序的物理文件夹放在默认网站的物理文件夹下,并保留此网站的默认绑定。 这意味着:

  • 当我键入http://xxx.xxx.xxx.xxx/intranet时 ,会向IIS发出一个请求,该请求使用不带主机名的绑定,而主机名又映射到默认网站,并且在该网站中,进入“内联网”物理文件夹。

事情理论上应该正常,但是我偶然发现了下面的问题。 我所托pipe的大多数networking应用程序都是ASP.NET应用程序,并使用web.config文件。 当我直接访问这些应用程序之一,通过第一种方法(即使用主机名),事情工作正常。 但是,当我使用第二种方法访问它时,IIS会抱怨web.config中的某些设置处于不正确的级别。 我知道为什么会发生这种情况:由于我设置了绑定的方式,对IIS的请求正在被更高级别的Web应用程序中的物理文件夹所取代,而不是我正打算访问的Web应用程序。

我的问题是:因为这个configuration策略打破了ASP.NET web.config的行为(也可能是其他的事情),还有其他的select,我应该考虑允许基于名称和IP的访问? 谢谢。

编辑 。 现在我已经find了解决这个问题的办法。 请在下面看到我自己的答案。

我find了解决这个问题的办法。

我现在正在做的是这个。 我已经build立了每个Web应用程序为:

  • IIS上的一个网站,在我原来的例子中,它自己绑定到特定的主机名,例如“intranet”。
  • 默认网站下的一个Web应用程序,它保持默认的全部绑定,没有主机名。

例如,Intranet Web应用程序在名为“Intranet”的IIS上显示为一个与主机名“intranet”绑定的站点,因此访问该服务器的用户将作为http:// intranet /将被定向至此; 而且在服务器的默认网站下也会出现一个名为“Intranet”的webb应用程序,所以访问http://xxx.xxx.xxx.xxx/intranet的用户也会在那里发送。 他们是两种不同的方式来达到相同的物理文件夹和相同的内容,它完美地工作。

感谢所有的帮助!

总之:不要使用第二种方法。

在站点的站点绑定中,只需将Intranet yourpublicname.yourdomain.com指定为主机标头。

然后,假设它可以访问互联网,同一个网站将以不同的绑定提供给两者。

翻译网站和从网站的path是棘手的; 最好保持相同的网站布局,只需添加一个绑定?

(为什么不这样做?)