Frage

Dies ist nicht das erste Mal, dass ich diese Methode bin mit einer POST-Anfrage zu senden, und ich habe nie irgendwelche Probleme hatte:

    public static Stream SendPostRequest(Uri uri, byte[] postData)
    {
        var request = WebRequest.Create(uri);
        request.Method = "POST";
        request.ContentType = "application/x-www-form-urlencoded";
        request.ContentLength = postData.Length;
        Stream requestStream = request.GetRequestStream();
        requestStream.Write(postData, 0, postData.Length);
        requestStream.Close();
        return request.GetResponse().GetResponseStream();
    }

Auf request.GetRequestStream () Ich erhalte eine System.Net.WebException: Die zugrunde liegende Verbindung wurde geschlossen: ein unerwarteter Fehler auf einem Sende aufgetreten
. Noch interessanter, es funktioniert sehr gut auf einigen Maschinen, aber funktioniert nicht auf meinem Rechner (Windows 7 Beta) und Produktionsserver (Windows Server 2008). Weitere Informationen:

Works - Windows XP - .NET 2.0
Works - Windows XP - .NET 3.5
Works - Windows Server 2003 - .NET 3.0
Funktioniert nicht - Windows Vista - .NET 3.5
Funktioniert nicht - Windows Server 2008 - .NET 3.5
Funktioniert nicht - Windows 7 Beta - .NET 3.5 SP1

Versuchte:

  • Bündel Sachen von hier , nichts half.
  • Verwenden von WebClient , nichts geändert.
  • Tweaking diese Optionen , aber didn‘ t bemerken nennenswerten Unterschied.
  • Wireshark. Ein sehr gutes Werkzeug.

[gelöst. Kinda]
Ich vergaß zu erwähnen, aber Uri war https ... Ich habe versucht, http und es funktionierte. Kann nicht glauben, ich nicht, dass früher versuchte ...
Dennoch würde ich mich freuen, wenn jemand ein Licht auf dieser ganzen Situation würde leuchten.

War es hilfreich?

Lösung

Mein erster Plan des Angriffs wäre Wireshark , um zu sehen, was in jedem Fall auf der Netzebene geschieht. Sehen Sie, was jede Maschine sendet.

Außerdem haben Sie Unterschiede zwischen den Betriebssystemen festgestellt, aber tun sie alle genau die gleiche Version von .NET haben (bis auf SP) installiert?

Andere Tipps

Do GETs arbeiten? Vielleicht ist es eine Proxy-Konfigurations Ausgabe (proxycfg usw.).

Auch - zur Vereinfachung der Dinge (Verringerung der Zahl der Unbekannten), betrachten WebClient mit der Post zu tun:

using (WebClient client = new WebClient())
{
    client.Headers.Add("content-type","application/x-www-form-urlencoded");
    client.UploadData(address, data);
    // or more simply
    client.UploadValues(address, nameValuePairs);
}

Versuchen Sie eine oder mehrere der folgenden Optionen Tweaking:

  • SendChucked
  • AllowAutoRedirect
  • Transferen

Versuchen Sie auch Unterschiede zwischen ihnen mit verschiedenen Konfigurationen zu beachten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top