Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I have a Windows Server 2008 R2 box with a client application trying to connect to another server's web service on port 443. The only access I have to the client application is to configure the URL of the server.

When I configure the server's service URL and attempt to connect to the service, I get the following stack trace in my client application log:

StackTrace:
   at System.Net.HttpWebRequest.GetResponse()
   at QBWebConnector.QWCReader.CheckCertURL()

Message (description of the exception):
The underlying connection was closed: An unexpected error occurred on a send.

Source (name of application or object that caused the exception):
System

TargetSite (method that threw the exception):
System.Net.WebResponse GetResponse()

InnerException:
System.IO.IOException: Received an unexpected EOF or 0 bytes from the transport stream.
   at System.Net.FixedSizeReader.ReadPacket(Byte[] buffer, Int32 offset, Int32 count)
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
   at System.Net.TlsStream.CallProcessAuthentication(Object state)
   at System.Threading.ExecutionContext.runTryCode(Object userData)
   at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result)
   at System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size)
   at System.Net.PooledStream.Write(Byte[] buffer, Int32 offset, Int32 size)
   at System.Net.ConnectStream.WriteHeaders(Boolean async)

It looks to me like Windows is partially suppressing my client application's outbound request. What would be doing this? It doesn't appear to be the firewall because the same thing happened with the firewall disabled completely.

I can monitor the Apache SSL logs on the server side.

When I request the server URL directly via IE on the client, I get the following Apache log line:

192.168.1.111 - - [30/Aug/2012:23:35:36 -0700] "GET /qb-mirror/ HTTP/1.1" 200 2590 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)"

When I run the client application (which will be requesting the URL as a SOAP service), there is a long 15-20 second delay. Then the following Apache log line appears:

192.168.1.111 - - [30/Aug/2012:23:41:01 -0700] "-" 408 1567 "-" "-"

Why is this request different?

share|improve this question
    
I'm not sure but it looks like a failure to validate the certificate. Can you check if your server has access to the CRL/OCSP server referenced in the cert ? Also, how is the trust chain ? –  Stephane Aug 31 '12 at 7:36
    
Thanks Stephanie. When browsing to the URL in IE, I get no certificate errors. The server has been signed by my CA, my CA is added to WinServer as a trusted cert. The cert chain visible in IE confirms that. The applications would both use the same Windows-level trusted certs right? –  Jonathan Aug 31 '12 at 7:41
    
Actually, it depends on how the application is configured. Specifically, you should make sure you installed the cert in the server store, not in a user store (being yours or the application identity's) –  Stephane Aug 31 '12 at 7:51
    
I have verified that the CA cert is installed in the server's Trusted Root Certificate store. When I check the User Account store, it is also present there. Still no luck... –  Jonathan Aug 31 '12 at 9:56
    
I have installed the same certificate and client applicatoin on a Windows7 box and it has the same connection. have basically ruled out any permissions client-side and believe it's probably a server-side issue at this point. –  Jonathan Aug 31 '12 at 11:38
show 3 more comments

Know someone who can answer? Share a link to this question via email, Google+, Twitter, or Facebook.

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.