我在一个hyper-v guest虚拟机上configurationARR时出现了一个奇怪的问题。
我可以正常加载我的DotNetNuke / ASPx站点,但经过一段时间不活动后,页面不再加载。
只有在访问默认的IIS站点并按下Ctrl + F5后,它才能恢复工作。 直到我离开浏览器再次空闲。
下面我描述这个场景和完整的描述:
(注意:我花了好几天的时间试图用生产设置来解决问题,我禁用了规则并configuration了一个“全部通过”的规则,简化到这种情况,但问题是一样的。
我有一个d-link DSL-2750B,它是80端口转发到反向代理服务器(Windows 2012标准虚拟机)的端口;
此反向代理服务器启用了ARR,并且URL重写规则configuration为通过使用“全部捕获规则”(*)将所有调用redirect到Web服务器(重新路由到其服务器场),仅用于testing目的;
在也是虚拟机的Web服务器上,我有3个DotNetNuke站点和1个默认IIS网站,只有默认的html;
所有这些网站都没有Windows身份validation。 他们都接受匿名。
上面的configuration工作。 为了使testing更强大,我使用我的家用电脑通过LogmeIn访问公司页面:
我打开我的“家”Web浏览器并导航到所有网站(3个DN网站和默认IIS站点)。 一切都好。
现在我离开Web Broser闲置或只是继续工作,随机分钟。
突然间,当我尝试刷新或导航通过网站,页面不加载,并且网页浏览器不断显示“进度图标”(在Firefox,正在运行的绿色圆圈,灰色之后)。
它会保持很长时间,直到出现“重新启动连接”消息。
点击“刷新”button多less次无关紧要,不断显示绿色圆圈。 另外,closures浏览器并打开新的实例也没有帮助。 最终,几分钟后,这些网站重新开始工作。
现在奇怪的部分:如果我浏览默认的IIS网站,并按Ctrl + F5,我可以正常导航到DNN网站!
所有的导航都很好,直到最后几分钟之后再次卡住。
有人通过这个问题?
同时“家”Web Broser卡,“公司”Web浏览器(通知,在同一networking中)正常工作,通过使用HOSTS修改指向ARR服务器)。
如果我直接转发到Web服务器(VM)的防火墙,一切似乎运作良好。
似乎有一个保留的时间工作,并保留一段时间不工作。 这是间歇性的。
我发现绕过这个问题的唯一技巧是在Web浏览器中加载一个默认的IIS网站。
好。 经过又一天的testing,现在涉及到一个朋友,我们发现了匪徒:路由器。
我们用一个老式的D-Link DI-624replace了路由器,我们已经有了一切,现在一切正常。
这里我们find问题点的步骤:
首先,我们在论文中提出了请求从客户端到Web服务器的整个基础架构
那么,我们开始淘汰testing。 validation问题,从头到尾。 首先,再次testing整个基础架构中的请求
之后,我们将网站移动到每个服务器并testing每个服务器:
对于每一个Web站点的移动,我们都将防火墙指向ARR并直接指向Web Server
通过这些testing,我们可以消除在操作系统,hyper-v客户端,ARR / Rewrite甚至是我们的networking或网卡或电缆中都无法解决的错误。
所以,当我们进行testing的时候,当我们到达链中的最后一个环节时,我们冒着风险去绘制,路由器。
而已!