title: Mono: WCF Service Timeout with basichttpBinding (Mono 2.10.8.1)
body: <p>I'm having WCF Client with basicHTTPBinding. That is working fine when running in Windows. but when running from Mono (Debian 2.10.8.1-5, Mono JIT compiler version 2.10.8.1) I immmediately get a timeout.</p>
  
  <pre><code>Unhandled Exception: System.TimeoutException: The operation has timed-out.
    at System.ServiceModel.Channels.HttpRequestChannel+HttpChannelRequestAsyncResult.WaitEnd () [0x00000] in &lt;filename unknown&gt;:0
    at System.ServiceModel.Channels.HttpRequestChannel.EndRequest (IAsyncResult result) [0x00000] in &lt;filename unknown&gt;:0
    at System.ServiceModel.Channels.HttpRequestChannel.Request (System.ServiceModel.Channels.Message message, TimeSpan timeout) [0x00000] in &lt;filename unknown&gt;:0
    at System.ServiceModel.MonoInternal.ClientRuntimeChannel.Request (System.ServiceModel.Channels.Message msg, TimeSpan timeout) [0x00000] in &lt;filename unknown&gt;:0
    at System.ServiceModel.MonoInternal.ClientRuntimeChannel.Request (System.ServiceModel.Description.OperationDescription od, System.Object[] parameters) [0x00000] in &lt;filename unknown&gt;:0
    at System.ServiceModel.MonoInternal.ClientRuntimeChannel.DoProcess (System.Reflection.MethodBase method, System.String operationName, System.Object[] parameters) [0x00000] in &lt;filename unknown&gt;:0
    at System.ServiceModel.MonoInternal.ClientRuntimeChannel.Process (System.Reflection.MethodBase method, System.String operationName, System.Object[] parameters) [0x00000] in &lt;filename unknown&gt;:0
  [ERROR] FATAL UNHANDLED EXCEPTION: System.TimeoutException: The operation has timed-out.
    at System.ServiceModel.Channels.HttpRequestChannel+HttpChannelRequestAsyncResult.WaitEnd () [0x00000] in &lt;filename unknown&gt;:0
    at System.ServiceModel.Channels.HttpRequestChannel.EndRequest (IAsyncResult result) [0x00000] in &lt;filename unknown&gt;:0
    at System.ServiceModel.Channels.HttpRequestChannel.Request (System.ServiceModel.Channels.Message message, TimeSpan timeout) [0x00000] in &lt;filename unknown&gt;:0
    at System.ServiceModel.MonoInternal.ClientRuntimeChannel.Request (System.ServiceModel.Channels.Message msg, TimeSpan timeout) [0x00000] in &lt;filename unknown&gt;:0
    at System.ServiceModel.MonoInternal.ClientRuntimeChannel.Request (System.ServiceModel.Description.OperationDescription od, System.Object[] parameters) [0x00000] in &lt;filename unknown&gt;:0
    at System.ServiceModel.MonoInternal.ClientRuntimeChannel.DoProcess (System.Reflection.MethodBase method, System.String operationName, System.Object[] parameters) [0x00000] in &lt;filename unknown&gt;:0
    at System.ServiceModel.MonoInternal.ClientRuntimeChannel.Process (System.Reflection.MethodBase method, System.String operationName, System.Object[] parameters) [0x00000] in &lt;filename unknown&gt;:0
  </code></pre>
  
  <p>I already checked it is no network connection issue as it runs from other (windows based) clients. Also the application is not waiting for the set timeout of 1 minute.</p>
  
  <p>Here is the code I'm using to call the service:</p>
  
  <pre><code>// Application Authentication
  DiscoveryService.LDEDiscoveryServiceClient client = new DiscoveryService.LDEDiscoveryServiceClient();
  client.InnerChannel.OperationTimeout = TimeSpan.FromMinutes(1);
  Console.WriteLine("Connecting to: " + client.Endpoint.Address.Uri);
  string token = client.GetTokenV1();
  Console.WriteLine(token);
  </code></pre>
  
  <p>And the app.config for the binding configuration:</p>
  
  <pre><code>&lt;configuration&gt;
      &lt;startup&gt; 
          &lt;supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/&gt;
      &lt;/startup&gt;
      &lt;system.serviceModel&gt;
          &lt;bindings&gt;
              &lt;basicHttpBinding&gt;
                  &lt;binding name="BasicHttpBinding_ILDEDiscoveryService" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:01:00" sendTimeout="00:01:00" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"/&gt;
                  &lt;binding name="BasicHttpBinding_ILDEDeviceService" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:01:00" sendTimeout="00:01:00" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"/&gt;
              &lt;/basicHttpBinding&gt;
          &lt;/bindings&gt;
          &lt;client&gt;
              &lt;endpoint address="http://hostname/LDE/DiscoveryService/LDEDiscoveryService.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ILDEDiscoveryService" contract="DiscoveryService.ILDEDiscoveryService" name="BasicHttpBinding_ILDEDiscoveryService"/&gt;
              &lt;endpoint address="http://hostname/LDE/DeviceService/LDEDeviceService.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ILDEDeviceService" contract="DeviceService.ILDEDeviceService" name="BasicHttpBinding_ILDEDeviceService"/&gt;
          &lt;/client&gt;
      &lt;/system.serviceModel&gt;
  &lt;/configuration&gt;
  </code></pre>