Unerwarteter Fehler bei einer senden. Dateiende oder 0 bytes vom Transportstream
Ich eine Anfrage, um eine https-site, mit diesem code:
webRequest = (HttpWebRequest)WebRequest.Create(new Uri(urlDestination));
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.ContentLength = bytes.Length;
Stream writer = webRequest.GetRequestStream();
writer.Write(bytes, 0, bytes.Length);
if (writer != null)
{
writer.Close();
}
response = new StreamReader(webRequest.GetResponse().GetResponseStream()).ReadToEnd();
und bekomme diese Fehlermeldung:
System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send. ---> 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, Boolean ignoreSyncCtx)
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)
--- End of inner exception stack trace ---
at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)
at System.Net.HttpWebRequest.GetRequestStream()
at Nop.Proxy.send_sync_post.process(NameValueCollection parametersReceived)
at Nop.Proxy.Includes.Page_Load(Object sender, EventArgs e)
Ich nach überprüfung im Internet über den Fehler fand ich diese Lösung und hat nicht geklappt:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
nach der Einnahme der Lieferant sagte er, dass er auf diese Fehler
SSL_do_handshake() failed (SSL: error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher) while SSL handshaking
Weiß ich, dass der Fehler von meinem Teil, aber nicht wissen, wie man den Antrag auf überspringen der Fehler.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den ssl3 Aussage löste mein Problem, aber ich kam über einen anderen Vorschlag, der nicht für mich, aber es tut, um Sie, da Sie einen content-length-Anweisung.
Der Vorschlag ist, entfernen Sie diese Aussage.
Meinen funktionierenden code folgt: