gpt4 book ai didi

.net - ASP.Net 发布超时

转载 作者:行者123 更新时间:2023-12-02 13:41:12 39 4
gpt4 key购买 nike

过去 2 周我一直被 asp.net post 问题困扰。

场景:

我的应用程序页面有 3 个控件。一个所见即所得编辑器(自由文本框),一个用于获取所见即所得编辑器中正在编辑的文章名称的文本框,另一个用于接受关键字的文本框。

页面中控件的顺序从上到下如下,
首先,名称文本框
二、所见即所得编辑器
最后,关键字文本框

问题:

当用户尝试保存其编辑的文档时,IIS 服务器会返回超时(生产在 win 2008 上运行)。但有趣的是,“名称文本”框信息和所见即所得编辑器的一半(不完全是一半,每种情况不同)信息都保存到数据库中。但最后一个“关键字文本”框未保存。在此期间,网络服务器挂起一段时间,将用户踢出,几分钟后恢复正常速度。我认为应用程序池被回收了。但在我的开发环境中一切正常(在我的电脑上运行 Win 7 64 位)。此外,我还在生产和开发环境的页面指令中设置了 ValidateRequest="False"。

环境:

环境.NET 4.0、ASP.NET
自由文本框所见即所得编辑器
共享主机 Windows 2008
SQL Server 2008

尝试过的解决方案(但没有突破):

尝试使用不同的浏览器 Firefox、chrome、IE 并出现相同的错误。
在页面指令中添加了 ValidateRequest="False"并将所见即所得编辑器替换为纯文本框并尝试保存,同样的问题。
只是尝试直接从 page.request 对象记录发布数据。仍在获取“名称文本框”的完整数据,一半为所见即所得文本框,没有任何其他数据。
数据库连接或表字段没有问题。我已经三重检查了。

可能的怀疑和问题:

据我所知,发布数据长度没有限制。但在 IIS 中可以覆盖这个吗?想知道这是否是在我的共享主机上设置的。
基本上,http post 数据在浏览器和 server.request 对象之间的某个地方被截断。如果出现这种情况,原因是什么?
如果 http post 被截断,为什么整个应用程序会挂起(或重新启动)?
将html内容发布为http post时需要注意什么?

谢谢。

新发现:

使用 httpfox 检查我的帖子。帖子大小约为 9958 字节。但 Firefox 发送前 330 字节数据,然后网页挂起。大约一分钟后,我在 httpfox 中收到 NS_ERROR_NET_RESET 错误代码。

使用 filder2 和 IE9 检查我的帖子。它尝试发送前 512 个字节,然后挂起。返回“ReadResponse() 失败:服务器未返回此请求的响应。”

问题:

这可能是浏览器问题或服务器问题。我认为如果浏览器问题,IE 和 Firefox 不会出现这种情况。

更新:

很可能将问题隔离到网络托管。通过将表单发布 URL 更改为不同的域进行测试,并查看是否可以在该域检索值。是的,它有效。只是它不适用于我的域。有趣的是,我测试了正常的 html 页面帖子。它也不起作用。因此很可能安装了安全措施来防止这种情况或服务器配置错误。已经给他们买了票并等待。

您的所有反馈如何帮助我找出问题。

已解决:

是的,这个问题出现在我们的网络托管网站上。到目前为止,我从他们那里听到的消息就像是某个防火墙阻止了来自 http 的大帖子。他们说现在我们的域名已列入白名单。不管怎样,现在它起作用了。虽然这占用了我两周的时间,但也是很好的学习经历。谢谢大家帮助。非常感谢。

最佳答案

我在一个网页上遇到了同样的错误。它非常有线,因为如果我使用代理,错误就会消失,如果直接从我的计算机调用我,我就会超时,并且永远不会继续。

截至2011年12月为止出现此问题的网站是http://www.auctionsniper.com/如果我使用它的移动版本,同一个网站也可以工作。

经过对上述站点的多次检查,我发现问题出在非常大的 View 状态上!。 我是如何找到它的:我在渲染时保存页面的 html 部分,并开始从 html 中删除项目并发布帖子,直到我发现当我剪切 View 状态帖子时帖子仍在继续。

解决方案是禁用许多不需要的控件上的 View 状态,并压缩+剪切剩余 View 状态发布数据的较小部分。

您可以通过谷歌搜索并找到许多方法来压缩和剪切 View 状态的部分。

一些文章:

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你使用的 View 状态是巨大的!它甚至没有文本,想象一下如果你里面真的有文本, View 状态会有多大。不是那么免费 - 成本是巨大的 View 状态。

跟进

正如Jeyara在下面的评论中所说,最终这是错误,托管服务器上的防火墙阻止了大型帖子文件。

因此,错误/超时与大量回发数据有关,这是一个罕见但存在的问题。

关于.net - ASP.Net 发布超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5800626/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com