动态WCF客户端不会等待超过一分钟

时间:2014-11-08 15:52:01

标签: c# wcf

我编写c#代码,动态连接到WCF服务器。如果连接将少于1分钟,它的工作完美。但是如果远程功能工作超过1-2分钟,则抛出异常。这是我的代码:

try
{
    BasicHttpBinding basicHttpBinding = new BasicHttpBinding()
    {
        CloseTimeout = TimeSpan.FromMinutes(20),
        OpenTimeout = TimeSpan.FromMinutes(20),
        ReceiveTimeout = TimeSpan.FromMinutes(10),
        SendTimeout = TimeSpan.FromMinutes(10)
    };
    EndpointAddress endpointAddress = new EndpointAddress("http://***");
    IBrowserClicker personService = new ChannelFactory<IBrowserClicker>(basicHttpBinding, endpointAddress).CreateChannel();
    Console.WriteLine(personService.TestConnect().Equals("Hello google!"));
}
catch (Exception exception)
{
    Console.WriteLine("Error:"+exception);
}

例外:

  

错误:System.ServiceModel.FaultException:由于内部错误,服务器无法处理请求。有关错误的更多信息,请在服务器上启用IncludeExceptionDetailInFaults(来自ServiceBehaviorAttribute或配置行为),以便将异常信息发送回客户端,或者根据Microsoft .NET Framework SDK文档打开跟踪,检查服务器跟踪日志。

那么,它是如何解决的?

1 个答案:

答案 0 :(得分:0)

尝试在web.config文件中打开IncludeExceptionDetailInFaults以查看确切的错误。这可能是

的副本

Turn on IncludeExceptionDetailInFaults (either from ServiceBehaviorAttribute or from the <serviceDebug> configuration behavior) on the server

这解释如下,它对我有用。 在.config文件中定义一个行为:

<configuration>
 <system.serviceModel>
   <serviceBehaviors>
     <behavior name="debug">
     <serviceDebug includeExceptionDetailInFaults="true" />
  </behavior>
</serviceBehaviors>
...

然后将这些行为应用到您的服务中:

<configuration>
  <system.serviceModel>
     ...
  <services>
      <service name="MyServiceName" behaviorConfiguration="debug">
   </services>
</system.serviceModel>
</configuration>

如果您发现无法激活它,请查看它并告诉我。