.NET Web 服务超时异常
Posted
技术标签:
【中文标题】.NET Web 服务超时异常【英文标题】:.NET WebService Timeout Exception 【发布时间】:2011-09-21 08:42:49 【问题描述】:在我的 .NET 应用程序中调用 Web 服务操作时出现以下异常:
System.Net.WebException:操作已超时 System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest 请求)在 System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest 请求)在 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(字符串 方法名,对象 [] 参数)在 org.wvi.hrmgmt.HRManagementServiceserviceagent.LoadReducedTemplate(LoadReducedTemplateRequest LoadReducedTemplateRequest) 在 org.wvi.mgmt.hr._ServiceClient.UploadReducedTemplate()
基本上,用户将文件上传到 Web 服务器,当调用 Web 服务操作时,该文件的二进制内容作为输入参数之一被传递。该文件的大小为 1,397 KB,如果我选择处理此文件,则会出现异常。然而,处理一个相对较小的文件(假设为 127 KB)会产生成功的响应。
为了解决这个难题,我做了以下步骤:
将 Web 服务超时设置为无限。 -> 没有得到异常和任何响应
添加 Response.Close() -> 没有得到任何响应
在 IIS 服务器中编辑 web.config 并添加以下行:-> 仍然出现异常
<system.web>
<customErrors mode="Off"/>
<httpRuntime executionTimeout="600" maxRequestLength="16384"/>
<sessionState timeout="540"/>
</system.web>
但是,无济于事,我仍然遇到上述异常。我正在使用来自 GitHub 的名为 AjaxUpload 的 javascript 插件,但我无法确定它们是否有文件上传大小限制。此外,我已经检查了文件是否正在上传到服务器上,并且确实如此,因此,问题可能不是因为那个插件。
另一个问题是,在打开网页一段时间后上传文件时,我遇到了同样的异常。我推测这与会话超时有关,所以我在 web.config 文件中添加了一个附加行,指定最大超时。如果我走在正确的轨道上,请告诉我。
是否需要在我的 IIS 服务器中应用其他设置才能使操作成功?否则,我有什么遗漏吗?如果您以前遇到过这种情况,请告诉我该怎么做。
非常感谢, 拉尔夫
【问题讨论】:
【参考方案1】:这可能是由于之前打开了很多代理。所以我建议你把Service.Reference.Config连同web服务引用一起删除,然后重新添加服务引用,看看它是否能解决你的问题。
【讨论】:
【参考方案2】:在上一个答案的基础上,您可以尝试在代理类上设置执行超时,参考discussion
并且您的服务调用正在执行一项长时间运行的任务,您可能希望通过在代理类中设置超时来让任何 Web 服务调用长时间超时,如前所述。
【讨论】:
以上是关于.NET Web 服务超时异常的主要内容,如果未能解决你的问题,请参考以下文章