.asmx 请求超时时返回非常大的字符串



我们有几个.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服务发送大量数据。但是,要处理这种情况,最好的方法是将数据分解成小数据包。

您可以做的是创建一个索引数据包的标头。收到标头后,将服务器配置为发送剩余的数据部分。

最新更新