需求分析
出现该问题的原因是有时候我们在测试过程中,无法找到服务器上面IIS中间件所发布网站的物理路径;所以引出该问题。
并且有时候可能会遇到一个服务器上面存在多个网站的情况,不容易判断各个网站对应的目录,这个时候也可以使用这种方法判断各网站对应的域名,绑定的端口,对应的网站物理路径等。
需求实现
由于长时间和IIS打交道,这种问题也经常遇到,所以针对该问题我寻遍了互联网(原文地址忘了),找到了一篇能够获取到IIS网站发布目录绝对路径的方法。
可能并不是所有情况下都适用,仅个人记录。
Windows服务器安装了IIS服务后,在服务器的C盘会有一个文件夹,用于存放IIS的相关配置信息,并且多数网站发布目录的物理路径也记录在该文件中。
c:\windows\system32\inetsrv\config\applicationHost.config
没安装IIS的话没有config这个目录,写这个的时候我已经测试了;然后找到该目录下的 applicationHost.config 文件,打开该文件并定位到 sites标签,所有**site**标签中的内容既是对应网站发布的域名信息,绑定端口信息,绑定IP地址信息,以及绑定的物理路径信息,大致内容如下:
<sites>
<site name="Default Web Site" id="1">
<application path="/">
<virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\wwwroot" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:80:" />
</bindings>
</site>
<site name="test" id="2">
<application path="/" applicationPool="test">
<virtualDirectory path="/" physicalPath="C:\Website" />
</application>
<bindings>
<binding protocol="http" bindingInformation="192.168.10.11:80:www.thistest.com" />
</bindings>
</site>
用到的情况可能不是很多,但是偶尔还是要用一下。