Загрузка в SharePoint через WebDav через прокси завершается неудачно с HTTP 405
Я пытаюсь загрузить файл в библиотеку SharePoint, используя WebClient и библиотеку WebDav .NET от Independentsoft. Сначала у меня возникла проблема с тем, что метод Upload возвратил исключение с HTTP 403. Затем я понял, что должен пройти через прокси. Теперь он возвращает мне HTTP 405. Я также использовал ClientOM, но не смог настроить параметры прокси-сервера, поэтому я все еще получаю там HTTP 403.
Код, который я использую для WebClient и WebDav .NET, выглядит следующим образом:
WebClient:
webClient.UseDefaultCredentials = true;
string[] bypassList = { "localhost" };
webClient.Proxy = new WebProxy("proxy", true, bypassList, new NetworkCredential("user", "password"));
try
{
byte[] response = webClient.UploadFile("http://sharepoint/testBlankSite/testLibrary/TestUpload.txt", "PUT", @"...\Desktop\TestUpload.txt");
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
WebDav .NET
NetworkCredential credential = new NetworkCredential("user", "password");
string[] bypassList = { "localhost" };
WebProxy proxy = new WebProxy("proxy", true, bypassList, new NetworkCredential("user", "password"));
WebdavSession session = new WebdavSession(credential, proxy);
Resource resource = new Resource(session);
try
{
resource.Upload("http://sharepoint/testBlankSite/testLibrary/TestUpload.txt", @"...\Desktop\TestUpload.txt");
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
Кто-нибудь знает, почему это не работает и как я могу решить это?
1 ответ
Это довольно распространенная проблема с SharePoint. Проверьте эти ссылки:
SharePoint, WebDAV и случай из 405 кодов состояния
SharePoint 2013 - отключить использование WebDAV в SharePoint
Как упоминали @GavinB и @Jeremy, альтернативой является объектная модель на стороне клиента, то есть Microsoft.SharePoint.Client. Эта библиотека - просто оболочка, и она выполняет HTTP-запросы, похожие на те, которые вы пытаетесь выполнить.