c# 的web Service的超时时间设置问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# 的web Service的超时时间设置问题相关的知识,希望对你有一定的参考价值。

其解决实例是这样的:
WebService超时设置
1. 服务器端设置超时

在 web.config 的 system.web 里添加如下配置项:

< httpRuntime
executionTimeout="30"
/>

以上时间单位是秒.

记得要把 web.config 的 debug 模式关闭:

< compilation
defaultLanguage="c#"
debug="false"
/>

2. 客户端设置超时

在 WebService 的客户端代理程序(用 wsdl.exe 生成)里设置 Request 超时时间, 单位是毫秒:
protected override WebRequest GetWebRequest(Uri uri)

HttpWebRequest wr = (HttpWebRequest)base.GetWebRequest( uri );
wr.Timeout = 30*1000;
return wr;


有个问题:
超时时间一定要在服务器端和客户端同时设置才行吗?

参考技术A 如果不一致,会以短的起作用。超时也是有默认值的。 参考技术B 哪边短就以哪边为准。不设置就是采用默认值。

C# UdpClient 设置超时时间

/**********************************************************************
 *                        C# UdpClient 设置超时时间
 * 说明:
 *     网络通信中设置超时时间是常有的时,记录UDP获取、发送超时设置方法。
 *
 *                                  2016-12-8 深圳 南山平山村 曾剑锋
 *********************************************************************/

一、参考文档:
    1. Can I set the timeout for UdpClient in C#?
        http://stackoverflow.com/questions/2281441/can-i-set-the-timeout-for-udpclient-in-c

二、解决方法:
    var udpClient = new UdpClient();

    udpClient.Client.SendTimeout = 5000;
    udpClient.Client.ReceiveTimeout = 5000;

 

以上是关于c# 的web Service的超时时间设置问题的主要内容,如果未能解决你的问题,请参考以下文章

为 .NET Web 服务设置超时值

c#程序在VS2010调试中涉及Web Service工作,但在内置发布时不起作用

如何解决 C# IIS 托管的 WCF NET TCP 服务超时问题

如何在方法 C# 上设置超时

C# UdpClient 设置超时时间

如何处理 Azure App Service WebSockets 超时?