2016-03-31 4 views
0

Ich benutze ein PHP-Script, um Dateien über die PUT-Methode als CLI-Filesharing-Dienst zu empfangen. Mein PHP-Script ist voll funktionsfähig und funktioniert mit curl unter Linux. Jetzt habe ich versucht, einen Windows-Client dafür mit C# und einem WebClient zu erstellen, der die Datei in die Zwischenablage hochlädt.C# Ausnahme bei "PUT" - Dateien auf Server

Mein C# -Code ist folgende: (concatted)

WebClient wc = new WebClient(); 
wc.Credentials = CredentialCache.DefaultCredentials; 
byte[] resp = wc.UploadFile(new Uri("https://filec.li/" + Path.GetFileName(f)), "PUT", f); 

aber ich erhalte eine Ausnahme, bevor es sogar die Anfrage macht:

The underlying connection was closed: An unexpected error occurred on a send 

nginx Zugriffsprotokoll, wenn sie mit C# (concatted) Zugriff auf :

xxx.xx.xx.xx - - [31/Mar/2016:12:11:50 -0400] "PUT /ani_web.fla HTTP/1.1" 301 209 "-" "-" 

nginx Zugriffsprotokoll, wenn sie mit curl Zugriff (concatted):

xxx.xx.xx.xx - - [31/Mar/2016:12:32:21 -0400] "PUT /ani_web.fla HTTP/1.1" 200 46 "-" "curl/7.38.0" 

Und das Nginx-Fehlerprotokoll ist leer.

Ich habe auch die Connection Timeout auf 300 Sekunden auf dem Server, aswell als max_body_size zu 1024M

ich für diese über alle ausgesehen haben und ich kann nicht eine Lösung

scheinen zu finden, ich vergaß hinzuzufügen, dass die Anforderung SSL ist

+0

Wenn Sie den HTTP-Verkehr mit z. B. Fiddler überprüfen, vermute ich, dass Sie eine Umleitung auf Ihrem PUT bekommen, die es abbrechen und eine Wiederholung auf der erfordern neue URL –

+0

Ich habe möglicherweise das Protokoll falsch ausgewählt, das war, als ich auf die http-Seite zugegriffen habe, jetzt bin ich auf eine https-Seite zugreifen, deshalb gibt es eine 301 Aber trotzdem danke –

Antwort

0

I

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; 
hinzuzufügen vergessen

Um den Code, ich habe es selbst behoben