c# - .NET Web 服务超时异常

标签 c# .net web-services iis

在我的 .NET 应用程序中调用 Web 服务操作时出现以下异常:

System.Net.WebException: The operation has timed out at 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 org.wvi.hrmgmt.HRManagementServiceserviceagent.LoadReducedTemplate(LoadReducedTemplateRequest LoadReducedTemplateRequest) at org.wvi.mgmt.hr._ServiceClient.UploadReducedTemplate()

基本上,用户将文件上传到网络服务器,该文件的二进制内容在调用网络服务操作时作为输入参数之一传递。该文件的大小为 1,397 KB,如果我选择处理该文件,则会出现异常。然而,处理一个相对较小的文件(假设为 127 KB)会给出成功的响应。

为了解决这个难题,我做了以下步骤:

  1. 将网络服务超时设置为无限。 -> 没有得到异常和任何响应

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

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

    <system.web>
        <customErrors mode="Off"/>
    <httpRuntime executionTimeout="600" maxRequestLength="16384"/>
    <sessionState timeout="540"/>
    </system.web>
    

但是,无济于事,我仍然得到上述异常。我正在使用来自 GitHub 的名为 AjaxUpload 的 Javascript 插件,我无法确定它们是否有文件上传大小限制。此外,我已经检查了文件是否正在上传到服务器上并且确实如此,因此问题可能不是因为那个插件。

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

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

非常感谢, 拉尔夫

最佳答案

这可能是因为之前打开了很多代理。因此,我建议您删除 Service.Reference.Config 以及 Web 服务引用,然后重新添加服务引用,看看是否能解决您的问题。

关于c# - .NET Web 服务超时异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7496941/

相关文章:

wcf - 开源 Web 服务/WCF 媒体流

php - 如何让 Android 应用程序通过互联网与网络服务器通信?

c# - 如何使按钮文字变粗?

C# 和 void 指针

c# - 在 XML 文件 C# 的特定位置添加元素

.net - 利用.net中的web.config使用浏览器缓存?

c# - Roslyn .rsp 文件中的引用

SUDS 的 C# 版本?

c# - 由契约(Contract)和 build 者设计

c# - 如何从特定 session Identity Server 4、.Net Core 中注销用户?