.NET WebService超时异常

时间:2011-09-21 08:42:50

标签: c# .net web-services iis

在我的.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(字符串   methodName,Object [] parameters)at   org.wvi.hrmgmt.HRManagementServiceserviceagent.LoadReducedTemplate(LoadReducedTemplateRequest   LoadReducedTemplateRequest)at   org.wvi.mgmt.hr._ServiceClient.UploadReducedTemplate()

基本上,用户将文件上传到Web服务器,并且在调用Web服务操作时,此文件的二进制内容将作为输入参数之一传递。文件的大小是1,397 KB,如果我选择处理这个文件,我会得到例外。然而,处理一个相对较小的文件(假定为127 KB)会给出成功的响应。

我已经完成了以下步骤以解决困境:

  1. 将Web服务超时设置为无限。 - >没有得到例外和任何回复

  2. 添加Response.Close() - >没有得到任何回复

  3. 在IIS服务器中编辑web.config并添加以下行: - >仍然得到例外

    <system.web>
        <customErrors mode="Off"/>
    <httpRuntime executionTimeout="600" maxRequestLength="16384"/>
    <sessionState timeout="540"/>
    </system.web>
    
  4. 然而,无济于事,我仍然得到上述例外。我正在使用一个名为AjaxUpload的Javascript插件来自GitHub,我无法弄清楚他们是否有文件上传大小限制。此外,我已经检查了文件是否正在服务器上传,因此,问题可能不是因为该插件。

    另一个问题是,在网页打开一段时间后上传文件时,我遇到了同样的异常。我猜测这与会话超时有关,所以我在web.config文件中添加了一行,指定了最大超时。如果我走在正确的轨道上,请告诉我。

    我是否需要在IIS服务器中应用其他设置才能使操作成功?否则,我有什么遗失的吗?如果您以前经历过这种情况,请告诉我该怎么做。

    非常感谢, 拉尔夫

2 个答案:

答案 0 :(得分:0)

这可能是由于之前打开了很多代理。因此,我建议您删除Service.Reference.Config以及Web服务引用,并再次添加服务引用,看看它是否解决了您的问题。

答案 1 :(得分:0)

添加到上一个答案,您可以尝试在代理类上设置执行时间,请参阅discussion

您的服务调用正在执行长时间运行的任务,您可能希望通过在代理类中设置超时(如前所述)来为任何Web服务调用留出长时间。