title: WCF service timing out
body: <p>I have a plugin that exposes a wcf service. if I test this service using WCFStorm, everything works fine. I get a response right away.  When I try to consume the service from the application that loaded the plugin I get a time out.</p>
  
  <pre><code>ProgrammingMaster_ServiceClient aClient = new ProgrammingMaster_ServiceClient();
  aClient.Endpoint.Address = new EndpointAddress("http://localhost:8081/ProgrammingMaster/PM_Service");
  aClient.BeginProgrammingSession(0x01);
  aClient.Close();
  </code></pre>
  
  <p>Is the code i'm using to consume the service.  ProgrammingMaster_SErviceClient is generated by svcutil.exe.</p>
  
  <p>I get the same problem if i remove the line</p>
  
  <pre><code>aClient.Endpoint.Address = new EndpointAddress("http://localhost:8081/ProgrammingMaster/PM_Service");
  </code></pre>
  
  <p>I'm not really sure where I should be looking to start debugging this.</p>
  
  <p>the service being called sends a message on a different network.  When I call it through wcfstorm I can see the message being sent by the service. so i know the service works correctly.</p>
  
  <p>What am i doing wrong when I call the service from my application that is causing a time out.</p>
  
  <p>Edit: after the time out expires (I'm catching and logging the exception), the service sends its message on the other network like its supposed to.</p>
  
  <p>Edit 2: Hopefully this is a better explanation.</p>
  
  <p>So I have a plugin which exposes a web service, and consumes a different web service.
  So the plugin basically connects to an object on a special network, then passes that objects property values by consuming a web service.  </p>
  
  <p>I have an application which exposes the web service the plugin uses to give updates of the remote objects values, and consumes a web service exposed by the plugin to pass commands to the remote object.</p>
  
  <p>There are no timeout issues when the plugin sends updates to the application.  I'm getting a timeout error when the application uses the web service to send a command to the remote object via the plugin.  After the timeout expires the command is executed. So the web service is being called successfully. I guess I'm just not getting a response back?</p>
  
  <p>Edit 3:
  here is my app config file.  I lowered the send timeout to 00:00:01 so that the wait isn't so long, but I'd really like to fix it so it doesn't have to timeout every time.</p>
  
  <pre><code>&lt;?xml version="1.0"?&gt;
  &lt;configuration&gt;
    &lt;system.serviceModel&gt;
      &lt;bindings&gt;
        &lt;wsHttpBinding&gt;
          &lt;binding name="WSHttpBinding_IProgrammingMaster_Service" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:00:01" bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false"&gt;
            &lt;readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"/&gt;
            &lt;reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false"/&gt;
            &lt;security mode="Message"&gt;
              &lt;transport clientCredentialType="Windows" proxyCredentialType="None" realm=""&gt;
                &lt;extendedProtectionPolicy policyEnforcement="Never"/&gt;
              &lt;/transport&gt;
              &lt;message clientCredentialType="Windows" negotiateServiceCredential="true" algorithmSuite="Default" establishSecurityContext="true"/&gt;
            &lt;/security&gt;
          &lt;/binding&gt;
        &lt;/wsHttpBinding&gt;
      &lt;/bindings&gt;
      &lt;client&gt;
        &lt;endpoint address="http://localhost:8081/ProgrammingMaster/PM_Service" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IProgrammingMaster_Service" contract="IProgrammingMaster_Service" name="WSHttpBinding_IProgrammingMaster_Service"&gt;
          &lt;identity&gt;
            &lt;userPrincipalName value="mzjkk7@nam.corp.gm.com"/&gt;
          &lt;/identity&gt;
        &lt;/endpoint&gt;
      &lt;/client&gt;
    &lt;/system.serviceModel&gt;
  &lt;startup useLegacyV2RuntimeActivationPolicy="true"&gt;
    &lt;supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/&gt;
  &lt;/startup&gt;
  &lt;/configuration&gt;
  </code></pre>