有没有办法查看当我通过HTTPS从外部networking访问站点时IIS 8.5服务器的function? 它打开什么文件夹结构,哪个文件?
我这样问,因为当我从外部通过HTTPS访问我的网站时,我总是被redirect到IIS默认页面,即使我停止了IIS中的默认网站并删除了默认情况下在inetpub / wwwroot中的所有html文件。 当我从内部访问HTTPS时,一切正常,如果我通过HTTP访问网站,无论内部或外部,一切正常。
有没有办法看到服务器做什么? 我能logging一些东西或追踪一些东西吗 我现在看到的日志不给我任何信息,为什么它不工作。
编辑:
太奇怪了 当我通过HTTPS从外部打开该网站时,它打开此: https : //mysite.mydomain.com/iis-85.png当我想从内部networking打开这个确切的URL我得到一个404 - File or Folder not found错误。 包含此iis-85.png的唯一文件夹是这一个: C:\Windows\WinSxS\amd64_microsoft-windows-iis-startserver_31bf3856ad364e35_6.3.9600.16384_none_bf87a3597b95c1cd ,我不认为它可能读取数据那里。
为什么是这样? 难道这仍然是caching吗? 我做了一切更新caching,删除temporpy asp文件,刷新dns,重新启动每个站点,IIS本身,每个应用程序池。 我还能做什么?
编辑:好吧,我知道了。 HTTPS通过防火墙NATredirect到另一台服务器。
对我来说,这听起来像外部的请求从来没有真正打你的服务器,他们似乎最终在一个不同的服务器,这将解释为什么看到您的服务器上不可用的页面。
有几种数据包嗅探方式可以在networking级别上find这个数据,但是正如我们在这里讨论的IIS一样,您可以启用http.sys tracingfunction,以便跟踪IIS负责处理传入请求的组件。
从我自己的博客文章 :
要启动跟踪,请运行:
logman.exe start httptrace -p Microsoft-Windows-HttpService 0xFFF -o httptrace.etl -ets执行一些要调查的请求,然后停止跟踪:logman.exe stop httptrace -ets转换为csv文件:tracerpt httptrace.etl -of csv -o httptrace.csv /y或者可能更好的事件日志文件,您可以在事件查看器中打开:tracerpt httptrace.etl -of evtx -o httptrace.evtx /y
通常可以看到使用跟踪在IIS请求中发生的情况。 对于IIS 8.5,您可以在这里find说明:
在IIS 8.5中请求跟踪
你所描述的可能是由于不正确的绑定。 IIS根据绑定显示网站内容。 如果您使用的域名与外部域名不同,则必须在绑定选项卡中列出。 绑定在这里描述:
添加绑定到网站
(文章是为IIS 7,但8是没有太大的不同)。 因此,总结一下,如果您的内部域名是“contoso.local”,而外部域名是“contoso.com”和“contoso-company.com”,则需要3个条目/绑定。 对于共享公用端口的IIS网站,绑定中的主机名可以确定哪个站点响应请求。
希望这可以帮助!