我们有几个.asmx soap Web服务来处理我们的Web GUI和后端应用程序服务器之间的通信。最近,我们从在内置的Web服务器中运行Visual Studio 2010解决方案转变为通过IIS 7.5运行它。我们立即开始经历非常缓慢的响应时间,并开始收到我们以前没有看到的各种异常,例如xml中的超时和序列化错误。
我们试图将问题缩小到最低限度,但解决方案很短,所以现在我们把它"扔在那里",看看是否有人经历过同样的事情,或者可能有解决方案。
附言。我们知道 .asmx Web 服务已过时,但目前无法将服务转换为 WCF。DS.
此代码将重现错误:
[WebMethod]
public string DebugGetAuditTrail()
{
const string data = "Some random text that is not very interesting. ";
StringBuilder lotsOfData = new StringBuilder();
for(int counter=0; counter<100000; counter++)
{
lotsOfData.Append(data);
}
return lotsOfData.ToString();
}
我们的 web.config 声明:
<httpRuntime executionTimeout="600" requestValidationMode="2.0" maxRequestLength="1400000"/>
提前感谢!
理想情况下,不建议使用Web服务发送大量数据。但是,要处理这种情况,最好的方法是将数据分解成小数据包。
您可以做的是创建一个索引数据包的标头。收到标头后,将服务器配置为发送剩余的数据部分。