Веб-службы Exchange - запрос не выполнен. Удаленный сервер возвратил ошибку: (413) Request Entity Too Large - PullRequest
0 голосов
/ 02 января 2019

У меня есть этот простой фрагмент кода, где я пытаюсь получить папки из определенного почтового ящика

ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;

ExchangeService service = new ExchangeService();

service.Credentials = new WebCredentials("ADMIN_USER@corp.contoso.com", "********");

Mailbox mb = new Mailbox("chris@corp.contoso.com");
FolderId fid = new FolderId(WellKnownFolderName.MsgFolderRoot, mb); 

// Set the URL.
service.Url = new Uri("https://<exchange>/EWS/Exchange.asmx");

var findResults = service.FindFolders(
    fid,
    new FolderView(int.MaxValue) { Traversal = FolderTraversal.Deep }
);

foreach(var result in findResults)
{
    //result.Load();
    Console.WriteLine(result.DisplayName);
}

Раньше все работало нормально, но сегодня утром начало возвращать эту ошибку

Microsoft.Exchange.WebServices.Data.ServiceRequestException: запрос не выполнен. Удаленный сервер возвратил ошибку: (413) Request Entity Too Large. ---> System.Net.WebException: удаленный сервер возвратил ошибку: (413) слишком большой объект запроса.

Я пробовал разные способы ее решения - в основном, путем увеличения предела размера объекта запроса, но это не помогает. Я полагаю, что код в порядке, но необходимо изменить конфигурацию виртуальной машины или Exchange. Пожалуйста, посоветуйте, как ее решить, спасибо.

1 Ответ

0 голосов
/ 03 января 2019

Вы не должны делать это

new FolderView(int.MaxValue) { Traversal = FolderTraversal.Deep }

Это не сработает в любом случае, потому что максимальное количество элементов, которые EWS вернет, будет равно 1000, поэтому вы должны реализовать правильную подкачку в своем коде https://docs.microsoft.com/en-us/exchange/client-developer/exchange-web-services/how-to-perform-paged-searches-by-using-ews-in-exchange, иначе ваш код не будет работать, когда число почтовых папок превысит 1000 .

Прежде чем настраивать какие-либо настройки сервера, я бы предложил вам протестировать EWS с помощью чего-то вроде EWS Editor https://github.com/dseph/EwsEditor/releases, если это работает, но ваш код не работает, тогда вы знаете, что проблема заключается не в месте назначения, а в источнике. Существует очень немного случаев, когда вам нужно когда-либо изменять настройки IIS на сервере Exchange для этого типа запроса, в этом не должно быть необходимости (возможно, большие вложения - это единственное, что я могу придумать). Поэтому я бы посмотрел, что еще недавно могло быть установлено на этом сервере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...