如何在WCF服务上将默认超时增加到大于1分钟?
你指的是服务器端还是客户端?
对于客户端,您需要调整绑定元素的sendTimeout属性.对于服务,您可能希望调整绑定元素的receiveTimeout属性.
....
当然,您必须将所需的端点映射到该特定绑定.
在Visual Studio 2008中的"工具"菜单下(如果安装了正确的WCF,则为2005),有一个名为"WCF服务配置编辑器"的选项.
从那里,您可以更改客户端和服务的绑定选项,其中一个选项将用于超时.
不同的超时意味着不同的东西.当你在客户端上工作时......你可能主要关注SendTimeout - 请查看此参考资料 - 精彩且相关的解释:http: //social.msdn.microsoft.com/Forums/en-US/wcf/thread/84551e45-19a2-4d0d-bcc0-516a4041943d /
您可以选择两种方式:
1)通过客户端代码
public static void Main() { Uri baseAddress = new Uri("http://localhost/MyServer/MyService"); try { ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService)); WSHttpBinding binding = new WSHttpBinding(); binding.OpenTimeout = new TimeSpan(0, 10, 0); binding.CloseTimeout = new TimeSpan(0, 10, 0); binding.SendTimeout = new TimeSpan(0, 10, 0); binding.ReceiveTimeout = new TimeSpan(0, 10, 0); serviceHost.AddServiceEndpoint("ICalculator", binding, baseAddress); serviceHost.Open(); // The service can now be accessed. Console.WriteLine("The service is ready."); Console.WriteLine("Pressto terminate service."); Console.WriteLine(); Console.ReadLine(); } catch (CommunicationException ex) { // Handle exception ... } }
2)通过Web服务器中的WebConfig
有关更多详细信息,请查看官方文档
在绑定上配置超时值
WSHttpBinding类