C#, Wie zu lösen, die Web-Client-Datei Hochladen "Der Remoteserver hat einen Fehler zurückgegeben: (405) Method not Allowed."?
Hallo, ich möchte mir das hochladen einer html-Datei, die in meiner lokalen auf einen remote-Ordner in einen server enthält Daten, die dir mit geoserver Elemente, und hier ist mein code:
public void CopyWS(string SourcePath, string DestinationPath)
{
try
{
string SourcePath = Path.GetFullPath("Result.html");
string DestinationPath = @"http://xx.xx.xxx.:8080/geoserver/rest/workspaces/";
string authInfo = "admin:geoserver";
WebClient client = new WebClient();
client.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(authInfo));
client.UploadFile(DestinationPath, "PUT", SourcePath);
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
Im immer folgende Fehlermeldung "Fehler 405 Methode nicht erlaubt". Im Versuch mit verschiedenen Methoden wie post statt setzen aber ich bin immer der gleiche Fehler.
EDIT: Jemand denken, dass vielleicht kann das ein Sicherheitsproblem sein? Mit UploadData-ich bin immer der gleiche Fehler
EDIT: Nach einer langen Zeit der Erprobung mit verschiedenen Methoden (UploadDatat ich.e) ich bin immer immer wieder die selben Fehler.Ich habe suchen und Lesen um, und konnte nicht gut alles, was wirklich nützlich ist.
EDIT: eine Idee?
Vielen Dank im Voraus
- Was bedeutet der Inhalt
DestinationPath
Aussehen? - Grundsätzlich ist die Methode Nicht Erlaubt bedeutet, dass die PUT-verb ist nicht konfiguriert
Du musst angemeldet sein, um einen Kommentar abzugeben.
PUT
ist nicht konfiguriert... in der RegelPUT
(aber nicht immer) bedeutet, dass der server verstehtWebDAV
...HTTP
uploads werden in der Regel überPOST
...andere Möglichkeit wäre, dass einige proxy-Blöcke
PUT
.BEARBEITEN - als pro-Kommentar:
POST-requests müssen die gebaut werden differentley und hängt davon ab, wie der server erwartet Sie... für einige Beispiel-code finden Sie unter Das hochladen von Dateien mit HTTPWebrequest (multipart/form-data)
client.UploadFile(DestinationPath, SourcePath);
ABER wie in meinem EDIT der server ist möglicherweise erwarten, dass bestimmte Dinge in einemPOST
und dann verwenden Sie besser HTTPWebRequest...