我在Windows Server 2008 R2上的IIS 7.5上托pipe了多个Web应用程序。 服务器有一个IP地址,我使用主机名来区分绑定到每个应用程序。 服务器有不同的DNS别名匹配的主机名,所以在公司networking内的所有工作正常。 例如:
问题是,我还希望用户能够通过使用服务器的IP(公共的)来访问公司networking外部的应用程序。 这意味着IIS还应该识别以http://xxx.xxx.xxx.xxx/intranetforms提出的对应于Intranet Web应用程序的请求。 我发现实现这一目标的唯一方法是将所有Web应用程序的物理文件夹放在默认网站的物理文件夹下,并保留此网站的默认绑定。 这意味着:
事情理论上应该正常,但是我偶然发现了下面的问题。 我所托pipe的大多数networking应用程序都是ASP.NET应用程序,并使用web.config文件。 当我直接访问这些应用程序之一,通过第一种方法(即使用主机名),事情工作正常。 但是,当我使用第二种方法访问它时,IIS会抱怨web.config中的某些设置处于不正确的级别。 我知道为什么会发生这种情况:由于我设置了绑定的方式,对IIS的请求正在被更高级别的Web应用程序中的物理文件夹所取代,而不是我正打算访问的Web应用程序。
我的问题是:因为这个configuration策略打破了ASP.NET web.config的行为(也可能是其他的事情),还有其他的select,我应该考虑允许基于名称和IP的访问? 谢谢。
编辑 。 现在我已经find了解决这个问题的办法。 请在下面看到我自己的答案。
我find了解决这个问题的办法。
我现在正在做的是这个。 我已经build立了每个Web应用程序为:
例如,Intranet Web应用程序在名为“Intranet”的IIS上显示为一个与主机名“intranet”绑定的站点,因此访问该服务器的用户将作为http:// intranet /将被定向至此; 而且在服务器的默认网站下也会出现一个名为“Intranet”的webb应用程序,所以访问http://xxx.xxx.xxx.xxx/intranet的用户也会在那里发送。 他们是两种不同的方式来达到相同的物理文件夹和相同的内容,它完美地工作。
感谢所有的帮助!
总之:不要使用第二种方法。
在站点的站点绑定中,只需将Intranet 和 yourpublicname.yourdomain.com指定为主机标头。
然后,假设它可以访问互联网,同一个网站将以不同的绑定提供给两者。
翻译网站和从网站的path是棘手的; 最好保持相同的网站布局,只需添加一个绑定?
(为什么不这样做?)