C # Как решить файл загрузки веб-клиента "Удаленный сервер возвратил ошибку: (405) Метод не разрешен." - PullRequest
0 голосов
/ 11 августа 2011

Здравствуйте. Я хочу загрузить html-файл, который находится в моей локальной сети, в удаленную папку на сервере, которая содержит каталог данных с элементами геосервера, и вот мой код:

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);
        }

Я получаю следующую ошибку «Ошибка 405: метод не разрешен». Я пытаюсь использовать разные методы, например post вместо put , но получаю ту же ошибку.

РЕДАКТИРОВАТЬ: Кто-нибудь думает, что может быть проблема безопасности? С UploadData я получаю ту же ошибку

РЕДАКТИРОВАТЬ: После длительного тестирования с различными методами (например, UploadDatat) я получаю всегда одну и ту же ошибку. Я искал и читал вокруг этого и не мог найти ничего действительно полезного .

РЕДАКТИРОВАТЬ: Есть идеи?

Заранее спасибо

1 Ответ

1 голос
/ 11 августа 2011

PUT не настроен ... обычно PUT (но не всегда) означает, что сервер понимает, WebDAV ... HTTP загрузка обычно осуществляется через POST ...

другой возможностью было бы то, что некоторые прокси блокируют PUT.

РЕДАКТИРОВАТЬ - согласно комментарию:

POST-запросы нужно создавать по-разному и зависит от того, как сервер ожидает их ... пример кода см. Загрузка файлов с HTTPWebrequest (multipart / form-data)

...