场景:
我的应用程序页面有3个控件.一个WYSIWYG编辑器(Free TextBox),一个文本框,用于获取在WYSIWYG编辑器中编辑的文章的名称,另一个文本框用于接受关键词.
页面中从上到下的控件顺序如下,
首先,名称文本框
第二,WYSIWYG编辑
最后,关键词文本框
问题:
当用户试图保存他们编辑的文档时,IIS服务器会返回超时(生产运行在win 2008上).但有趣的是,“名称文本”框信息和所见即所得编辑器的一半(其不完全是一半,每种情况都有所不同)信息保存到数据库中.但最后一个“关键字文字”框未保存.在此Web服务器挂起一段时间后,将用户踢出,稍后几分钟后恢复正常速度.我认为应用程序池是回收的.但是在我的开发环境中一切正常(在My PC上运行Win 7 64bit).我还在生产和开发环境的页面指令中设置了ValidateRequest =“False”.
环境:
环境.NET 4.0,ASP.NET
FreeText框WYSIWYG编辑器
共享主机窗口2008
sql Server 2008
尝试过的解决方案(但没有突破):
尝试使用不同的浏览器Firefox,Chrome,IE和同样的错误.
在页面指令中添加了ValidateRequest =“False”并用纯文本框替换了WYSIWYG编辑器并尝试保存,同样的问题.
只是尝试直接从page.request对象记录发布数据. WYSIWYG文本框的“名称文本框”仍有一半的完整数据,其余部分没有.
DB连接或表字段没有问题.我有三重检查.
可能的怀疑和问题:
根据我的知识,对帖子数据长度没有限制.但在IIS中是否可以覆盖它?想知道这是否在我的共享主机上设置.
基本上,http post数据在浏览器和server.request对象之间被截断.如果发生这种情况会是什么原因?
如果http post被截断,为什么整个应用程序挂起(或重新启动)?
将html内容发布为http帖子时需要采取哪些预防措施?
谢谢.
新发现:
使用httpfox查看我的帖子.帖子大小约为9958字节.但是firefox首先发送330个字节的数据,然后网页挂起.大约一分钟后,我在httpfox中收到NS_ERROR_NET_RESET错误代码.
使用带有IE9的filder2检查了我的帖子.它尝试发送前512个字节然后挂起.返回“ReadResponse()失败:服务器未返回此请求的响应.”
题:
这可能是浏览器问题或服务器问题.我认为如果浏览器问题,这不会发生在IE和Firefox上.
更新:
最有可能将问题隔离到网络托管.通过将表单post url更改为不同的域并查看是否可以在该域中检索值来进行测试.是的有效.只有它不适用于我的域名.有趣的是,我测试了这个正常的html页面帖子.它也没有用.因此,很可能安装了一个安全措施来防止此错误或服务器配置错误.已经给他们买票并等待.
您的所有反馈如何帮助我隔离问题.
解决了:
是的,这个问题出现在我们的网站托管网站上到目前为止,我从他们那里听到的就像一些防火墙阻止来自http的大帖子.他们说现在我们的域名是白名单.无论如何,现在它的作品.但这吃了2个星期的时间,但这是很好的学习经历.谢谢大家帮助.非常感谢.
解决方法
到2011年12月为止,此问题出现的网站是http://www.auctionsniper.com/
如果我使用它的移动版本,同一网站可以工作.
经过对上述网站的多次检查后,我发现问题出在非常大的观点状态!我是如何找到它的:我保存了我的页面的html部分,因为它呈现并开始从html删除项目并发帖,直到我发现该帖子在我减少viewstate帖子时继续.
解决方案是在许多不需要的控件上禁用viewstate,并在较小的部分压缩剪切剩余的viewstate post数据.
您可以谷歌并找到许多方法来压缩和切割部分视图状态.
一些文章:
http://msdn.microsoft.com/en-us/magazine/cc188774.aspx
如何剪切教程:
http://www.dotnetfunda.com/articles/article634-viewstate-patterns-in-aspnet-.aspx
如何压缩它
http://www.hanselman.com/blog/ZippingCompressingViewStateInASPNET.aspx
http://www.codeproject.com/KB/viewstate/ViewStateCompression.aspx
http://www.google.com/search?hl=en&safe=off&q=asp.net+compress+viewstate&aq=f&aqi=g1g-b2&aql=f&oq=
PS:
在您使用的this demo page of the free TextBox中,viewstate是巨大的!如果你真实地拥有文本并且文本在里面,那么想象一下视图状态有多大.不是那么自由 – 成本是巨大的观点.
跟进
正如Jeyara在下面的评论中所说,最后这是错误,托管服务器上的防火墙阻止了大型帖子文件.
所以错误/超时与大回发数据有关,这是一个罕见但存在的问题.