Ada*_*dam 10 c# iis asp.net-mvc webgrid
我在System.Web.Helpers.WebGrid
整个应用程序中广泛使用,并且在大多数情况下它很好,实际上在本地运行它总是很好或在服务器上使用自我SSL它也很好.所以我不知道问题是否真的可以用于IIS或防火墙,或实际的网格,或者我需要做些什么来修复它.
在所有浏览器上,虽然结果略有不同,但WebGrid上的连续ajax排序和分页会导致它挂起,当我在Fiddler中检查响应时,我得到
[Fiddler]
ReadResponse()
失败:服务器未返回此请求的响应.
如果我将网址直接复制并粘贴到浏览器中,它会加载,但是如果我不断点击F5,我最终会收到一条消息,指出Chrome中的"此网页不可用"(带错误103 ERR_CONNECTION_ABORTED
)或"Internet Explorer无法显示网页" IE浏览器.
网址很长很复杂,就像这样 http://app.myapp.com/mygrid/9e3b2ae5-cbe1-4a4a-a355-a14f00d26e24?mylayout=true&myid=634982439599769687&readonly=False&search=-&__=634982439708207187&sort=Name&dir=ASC
如果在服务器上安装了SSL证书,这个问题似乎就会消失,并且本地不会发生.
有任何想法吗?
你问题的最后一段
如果在服务器上安装了SSL证书,这个问题似乎就会消失,并且本地不会发生.
我立即让我想到了可能存在的问题DEFLATE
和GZIP
问题,知道它们会在加密连接上被禁用,很可能也会在本地连接上被禁用,因为你无法将相同的证书从服务器环境移动到本地开发环境(那就是如果这是一项要求,则必须为测试目的创建一个新的自签名证书.
我也碰巧偶然发现无限循环可能发生在GZipStream或DeflateStream之前的问题之前,以前的.NET 4.0,版本4.0.30319.236之一.这些问题已在以后的.NET 4.0版本中得到解决,并且可以通过在4.0版本的安装上安装.NET 4.5来避免这些问题.如果这是导致您出现问题的原因,那么它仍然很难说并且其他一些服务器端设置可能会导致它,例如现在已停止使用IIS锁定工具,甚至在启用压缩它们时URLScan也不接受冗长的URL请求.
TL; DR - 无论哪种情况,显而易见的结论是尝试在文件中urlCompression
为这些请求(和/或httpCompression
)禁用IIS服务器Web.config
,并查看问题是否仍然存在:
<configuration>
<system.webServer>
<urlCompression doStaticCompression="false" doDynamicCompression="false" />
</system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)
这显然是一个黑客解决方案,应该通过比较服务器和本地环境之间的差异来进一步研究,如果可能的话.服务器也很可能没有使用所有最新的库进行更新,这样做也可以解决它.
免责声明:我意识到这不是一个100%防弹的答案,但是OP在评论中建议它做到了这一点.我昨天也在DMZ上发布了这个问题及其可能的答案,询问是否有其他人知道更好的答案,并且我们的IT安全向导会立即认识到这些问题,但圣帕特里克节似乎已经采取了它的收费:)
干杯!