当前位置:  开发笔记 > 运维 > 正文

增加WCF服务中的超时值

如何解决《增加WCF服务中的超时值》经验,为你挑选了4个好方法。

如何在WCF服务上将默认超时增加到大于1分钟?



1> icelava..:

你指的是服务器端还是客户端?

对于客户端,您需要调整绑定元素的sendTimeout属性.对于服务,您可能希望调整绑定元素的receiveTimeout属性.


  
    
      
        
      
    
  

  
    
      
    
....

当然,您必须将所需的端点映射到该特定绑定.



2> Kieron..:

在Visual Studio 2008中的"工具"菜单下(如果安装了正确的WCF,则为2005),有一个名为"WCF服务配置编辑器"的选项.

从那里,您可以更改客户端和服务的绑定选项,其中一个选项将用于超时.


很棒的工具.真的有助于理解WCF的工作原理.

3> 小智..:

不同的超时意味着不同的东西.当你在客户端上工作时......你可能主要关注SendTimeout - 请查看此参考资料 - 精彩且相关的解释:http: //social.msdn.microsoft.com/Forums/en-US/wcf/thread/84551e45-19a2-4d0d-bcc0-516a4041943d /



4> daniele3004..:

您可以选择两种方式:

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("Press  to terminate service.");
        Console.WriteLine();
        Console.ReadLine();

    }
    catch (CommunicationException ex)
    {
        // Handle exception ...
    }
}

2)通过Web服务器中的WebConfig


  
    
      
        
        
      
    
  

有关更多详细信息,请查看官方文档

在绑定上配置超时值

WSHttpBinding类

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有