我有运行同一个 asp.net 站点的各种服务器(开发、2 x 测试、2 x 产品)。
test 和 prod 服务器是负载平衡的对(prod1 和 prod2,test1 和 test2)。
测试服务器对在大约十分之一的页面加载期间表现出某种(超级)减速或冻结。有时一行文本会出现在页面的最顶部,如下所示:
00 OK Date: Thu, 01 Apr 2010 01:50:09 GMT Server: Microsoft-IIS/6.0 X-Powered_By: ASP.NET X-AspNet-Version:2.0.50727 Cache-Control:private Content-Type:text/html; charset=ut
(开头和结尾被“切断”。)
有没有人见过这样的事情?知道这意味着什么或导致它的原因吗?
编辑: 点击某些东西时我也经常看到这个 - 它在黄页上显示为红色文本:
XML 解析错误:格式不正确 位置:http://203.111.46.211/3DSS/CompanyCompliance.aspx?cid=14 第 1 行,第 24 列:2mmTehON9OUNKySVaJ3ROpN" /> ----------------------^
如果我返回并再次单击,它会起作用(我看到的是我单击的页面,而不是上面的错误消息)。
更新:
...而且,有时我只是得到一个白色屏幕,而不是页面加载,黑色的文本是这样的(看起来很像上面的文本):
HTTP/1.1 302 发现日期:2010 年 4 月 21 日星期三 04:53:39 GMT 服务器:Microsoft-IIS/6.0 X-Powered-By:ASP.NET X-AspNet-Version:2.0.50727 位置:/3DSS/EditSections。 ASPX ID = 3&网站ID = 56&sectionId = 46的Set-Cookie:.3DSS = A6CAC223D0F2517D77C7C68EEF069ABA85E9HFYV64F&FA4209E2621B8DCE38174AD699C9F0221D30D49E108CAB8A828408CF214549A949501DAFAF59F080375A50162361E4AA94E08874BF0945B2EF; 路径=/; HttpOnly Cache-Control: private Content-Type: text/html; charset=utf-8 内容长度:184
对象移到这里
“这里”是一个链接,它指向一个 URL,就像我请求的那个一样,除了里面有一个额外的文件夹,意思是:http:
//123.1.2.3/MySite//MySite/Page.aspx?选项=1
而不是:http:
//123.1.2.3/MySite/Page.aspx ?option=1
更新:
我的一位同事发现一些信息说这可能是因为测试服务器在 64 位(64 位 win 2003)中运行 iis(产品服务器是 32 位 win 2003)。
所以我们尝试告诉 IIS 使用 32 位:
cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i
(来自这个 MS 支持页面)
但是 iis 完全停止工作(在白页而不是网站上出现“服务器不可用”)。
扭转上述情况(见链接)起初也不起作用。ASP.NET 选项卡从我们的 IIS 网站属性中消失了,我们不得不花一个小时卸载 (aspnet_regiis.exe -u) 并重新安装 32 位 ASP.NET 并将 Default.aspx 手动添加回默认文档。
我们可能会在几天后再试一次,如果有人在此期间有什么要补充的,请补充。
更新: 这似乎与我们迄今为止发现的一切不一致,但我们的测试表明这个问题只发生在 Firefox 中,而不是 IE 或 Chrome (!!??)。
更新:解决方案
对于以后发现此问题的任何人:
根据 Aristos 的建议(请参阅已接受的答案),我们搜索了 HTTP 标头“Content-Length”的代码。有一个设置它的页面,一个从数据库中提取图像以显示公司徽标的页面(直接吐出响应,即:而不是链接到说“log56.gif”,您可以链接到“ThisImagePage.aspx ?id=56" 它将提供来自数据库的指定 gif)。
我们注释掉了这一行:
HttpContext.Current.Response.AddHeader("Content-Length", File.Length.ToString());
......它奏效了。如果有人可以看到其中的错误,请告诉我们,否则我猜这是某种 IIS 或负载平衡器配置问题,仅在手动设置二进制文件的内容长度时出现,并且仅在 Firefox 中出现(!?) .