0

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

4

2 回答 2

1

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

希望这可以帮助。谢谢普拉蒂克

于 2013-08-21T20:24:02.723 回答
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"
于 2013-08-21T10:50:08.517 回答