【问题标题】:timeout calling webservice yet data transfer still completes超时调用 web 服务但数据传输仍然完成
【发布时间】:2009-03-13 18:44:48
【问题描述】:

尽管在我的 web.config 文件中设置了非常高的值,但我正在从网页调用我的 web 服务并获得超时。当文件通常非常大但但文件仍在完全上传(好像没有发生超时)时,这种情况会间歇性发生。这是我的 .aspx 文件中的一个函数,它调用我的 ASMX 代理类:

 private void UploadFile(HttpPostedFile postedFile, string fileNameOnly)
{
    // create an instance of the proxy class to talk to our service; calling it client:
    string strURI = string.Empty;
    WSproxyProject.ASMXProxy.FileService client = new WSproxyProject.ASMXProxy.FileService();
    try
    {
        BinaryReader b = new BinaryReader(postedFile.InputStream);
        byte[] binData = b.ReadBytes(numBytes);
        strURI = client.UploadFile(binData, fileNameOnly, binData.Length);
        txtURI.Text = strURI;
        LogText("SUCCESS: " + fileNameOnly + " has been uploaded. URI=" + strURI);
    }
    catch (Exception ex)
    {
    LogText("UPLOAD ERROR: " + ex.Message.ToString());

    }
}

请注意,我在 localhost 上的 Web 服务调用了另一个实际存储最终数据的 Web 服务。我在以下所有位置的 web.config 中都有以下 executionTimeout 设置:

  1. 我的 Web 客户端项目上的 web.config(myWebService 的调用者)
  2. myWebService 上的 web.config(vendorWebService 的调用者)
  3. vendorWebService 上的 web.config(驻留在我 LAN 中的另一台服务器上)

上面的代码块捕获的异常显示 ex.Source 是 System.Web.Services 而 ex.Message 是:

操作已超时

【问题讨论】:

    标签: asp.net web-services timeout


    【解决方案1】:

    如果在方法中设置 Web 服务超时长度会发生什么?

    ...
    WSproxyProject.ASMXProxy.FileService client = new WSproxyProject.ASMXProxy.FileService();
        client.Timeout = 9999999;
        try
        ...
    

    也许您还需要为 FileService 使用的其他 Web 服务设置类似的超时属性。

    我必须为使用动力不足的开发数据库的 Web 服务调用执行此操作。我宁愿让 Web 服务准备好执行比需要更长的时间,也不愿抛出异常。

    祝你好运。

    【讨论】:

    • 谢谢。像你上面勾勒的那样添加一个大的 Timeout 属性解决了这个问题。
    【解决方案2】:

    一些头脑风暴:

    • 您是否考虑过哪个 Web 服务或客户端超时?堆栈跟踪显示什么?
    • 每个人都会在稍微不同的时间开始这个过程。他们有相同的超时吗?
    • 文件是否完整?它可能是正确的大小,但已损坏。
    • 我知道这听起来很傻,但是是否存在一个永无止境的循环或循环持续时间比您认为它在某处更长的循环?

    希望里面有帮助。

    【讨论】:

      猜你喜欢
      • 2011-11-07
      • 2016-03-04
      • 2014-03-31
      • 2014-02-21
      • 2017-09-25
      • 1970-01-01
      • 2012-02-26
      • 2013-08-24
      • 1970-01-01
      相关资源
      最近更新 更多