【问题标题】:Timeout Errors occuring when calling web service in c# .Net 2.0在 c# .Net 2.0 中调用 Web 服务时发生超时错误
【发布时间】:2009-06-17 15:23:55
【问题描述】:

我继承了一些代码,但我对处理 Web 服务不是很熟悉。以下是项目的设置方式:

在“Web References”下有对我们正在使用的 Web 服务的引用。在该服务的 Reference.cs 文件中,有一个继承自 SoapHttpClientProtocol 的类,该类有一个名为 CandidateAdd() 的函数,它调用 this.Invoke(我认为这会调用实际的 Web 方法)

然后从 Reference.cs 文件中的一个派生两个类(一个用于生产环境,一个用于开发),它们仅包含 GetWebRequest(Uri) 的覆盖,此处设置

webRequest.KeepAlive = false;
webRequest.MaximumAutomaticRedirections = 30;
System.Net.ServicePointManager.MaxServicePointIdleTime = 18000;
webRequest.AllowAutoRedirect = true;
//webRequest.Timeout = 18000;

并返回网络请求对象。

应用程序的性质是,这个 Web 方法每天可能只会被调用 50 次左右,所以它不像服务器变得非常陷入困境或其他任何事情,更像是某些设置不正确.

提前感谢您的帮助!

【问题讨论】:

    标签: c# web-services .net-2.0 timeout


    【解决方案1】:

    请发布您看到的完整异常,包括所有 InnerException。例如:

    try {
        using (CandidateService svc = new CandidateService()) {
            svc.CandidateAdd();
        }
    }
    catch (Exception ex) {
        string what_I_should_post = ex.ToString();
    }
    

    您可能认为这很明显,但堆栈跟踪可能是一个很大的线索。

    然后,您需要弄清楚在发生此超时时服务在做什么。它可能正在执行数据库操作以“添加”“候选人” - 该操作在服务器端是否成功?然后,您可能想尝试找出需要这么长时间的原因。

    派生类的结构是我以前从未见过的,但这是一个合理的想法。这可能不是问题。我不会在调试期间弄乱该代码,但如果您对此有疑虑,请暂时将代码从一个类复制到另一个类。这样,它们都将具有相同的 WebRequest 参数。

    【讨论】:

    • 这是我们得到的错误(所有 xxxx 的部分都是我们的库) CandidateAdd 方法失​​败 System.Net.WebException:操作在 System.Web.Services.Protocols 处超时。 WebClientProtocol.GetWebResponse(WebRequest request) at System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest request) at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) at xxxxx.yyyyyy.zzzzz .fffffffff.CandidateAdd(String InputFile) at xxxxx.yyyyyy.ServiceWrapper.CandidateAdd(String info, String wsServer)
    • 另外,它在服务器端是成功的,我们只是在我们这边得到这些错误。
    • 好的,那么我想说下一步是找出服务器需要多长时间才能成功;以及为什么要花这么长时间。示例:就在昨天,更改的查询超时。使用 SQL Server 2008 活动监视器快速查看显示我缺少索引。只需接受它的建议,查询速度就提高了 98%
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-08
    • 1970-01-01
    • 1970-01-01
    • 2014-10-03
    • 1970-01-01
    • 2012-03-12
    相关资源
    最近更新 更多