设置WCF Dataservice的超时

时间:2013-08-21 08:20:00

标签: asp.net wcf wcf-data-services odata asp.net-web-api

我正在为OData服务的一些超时而苦苦挣扎。我的第一个想法是更改超时属性,但我找不到正确的位置来执行此操作。请求超时集应该在哪里以及如何?,有什么最佳做法吗?。

2 个答案:

答案 0 :(得分:1)

如果您使用的是ODataClient(DataServiceContext),则它具有可以设置的Timeout属性。如果您使用自己的客户端,那么它取决于您使用什么技术发送请求 - HttpWebClient,HttpListener,HttpClient等。它们都具有设置适当超时的属性。

希望这会有所帮助。 谢谢 PRATIK

答案 1 :(得分:0)

不确定OData服务,但通常会在绑定本身上设置发送和接收超时属性。我使用BasicHTTPBinding作为我的Web服务,在主机上,绑定以这种方式设置(在代码中):

BasicHttpBinding b = default(BasicHttpBinding);
b = new BasicHttpBinding(BasicHttpSecurityMode.None);
dynamic specialTimeSpan = new TimeSpan(0, 30, 0);
b.CloseTimeout = specialTimeSpan;
b.ReceiveTimeout = specialTimeSpan;
b.SendTimeout = specialTimeSpan;
b.OpenTimeout = specialTimeSpan;

这样可以将关闭,打开,接收和发送超时设置为30分钟。

在配置文件部署中,它将是这样的:

<basicHttpBinding>
  <binding 
   closeTimeout="00:30:00" 
   openTimeout="00:30:00" 
   receiveTimeout="00:30:00"
   sendTimeout="00:30:00"