【发布时间】: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 服务器中应用其他设置才能使操作成功?否则,我有什么遗漏吗?如果您以前遇到过这种情况,请告诉我该怎么做。
非常感谢, 拉尔夫
【问题讨论】:
标签: c# .net web-services iis