I use the RestClient application to communicate with my WCF service. And I get the following exception.
The underlying connection was closed: An unexpected error occurred on a receive.
This is the C # code that I use
string q = string.Format(@"xxxxxxxxxxxxxxxxxxxxxxxxxxx"); WebClient client = new WebClient(); string Url = string.Format("{0}/Get?queries={1}", BaseUrl,HttpUtility.UrlEncodeUnicode(q)); client.Headers.Add(HttpRequestHeader.ContentType, "application/json"); var result = client.DownloadString(Url); Console.WriteLine("======================output================================"); Console.WriteLine(result); Console.WriteLine("===========================================");
Here is the error message
System.Net.WebException was caught HResult=-2146233079 Message=The underlying connection was closed: An unexpected error occurred on a receive. Source=System StackTrace: at System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request) at System.Net.WebClient.DownloadString(Uri address) at System.Net.WebClient.DownloadString(String address) at RestClient.Program.GetRecordsTest() in C:\Users\Wiemon\Downloads\RestAppClient\RestAppClient\Program.cs:line 118 InnerException: System.IO.IOException HResult=-2146232800 Message=Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. Source=System StackTrace: at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) at System.Net.FixedSizeReader.ReadPacket(Byte[] buffer, Int32 offset, Int32 count) at System.Net.Security._SslStream.StartFrameHeader(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security._SslStream.StartReading(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security._SslStream.ProcessRead(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security._SslStream.Read(Byte[] buffer, Int32 offset, Int32 count) at System.Net.TlsStream.Read(Byte[] buffer, Int32 offset, Int32 size) at System.Net.PooledStream.Read(Byte[] buffer, Int32 offset, Int32 size) at System.Net.Connection.SyncRead(HttpWebRequest request, Boolean userRetrievedStream, Boolean probeRead) InnerException: System.Net.Sockets.SocketException HResult=-2147467259 Message=An existing connection was forcibly closed by the remote host Source=System ErrorCode=10054 NativeErrorCode=10054 StackTrace: at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) InnerException:
Here is my binding
<binding name="wsHttpEndpoint" > <readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="16384" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> <security mode="Transport"> <transport clientCredentialType="Certificate" /> <message clientCredentialType="Certificate" /> </security> </binding>
And my endpoint behavior, not that I set maxItemsInObjectGraph = "2147483647"
<behavior name="MyEndpointBehavior"> <dataContractSerializer maxItemsInObjectGraph="2147483647" /> <clientCredentials> <clientCertificate findValue="xxxxxxxxxxxxxxxxxx" x509FindType="FindBySubjectName" storeLocation="LocalMachine" storeName="My" /> <serviceCertificate> <authentication certificateValidationMode="None" revocationMode="NoCheck" /> </serviceCertificate> </clientCredentials> </behavior>