0

Я пытаюсь переместить большой кучу сообщений в другую папку, и операция занимает приблизительно 5-8 минут, зависит от местоположения серверов и количества элементов для перемещения. И я всегда получаю ошибку (504) Gateway Timeout, с трассировки стека:Увеличьте время ожидания для ответа от веб-сервера Exchange

Microsoft.Exchange.WebServices.Data.ServiceRequestException: The request failed. The remote server returned an error: (504) Gateway Timeout. ---> System.Net.WebException: The remote server returned an error: (504) Gateway Timeout. 
    at System.Net.HttpWebRequest.GetResponse() 
    at Microsoft.Exchange.WebServices.Data.EwsHttpWebRequest.Microsoft.Exchange.WebServices.Data.IEwsHttpWebRequest.GetResponse() 
    at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(IEwsHttpWebRequest request) 
    --- End of inner exception stack trace --- 
    at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(IEwsHttpWebRequest request) 
    at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ValidateAndEmitRequest(IEwsHttpWebRequest& request) 
    at Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.Execute() 
    at Microsoft.Exchange.WebServices.Data.ExchangeService.InternalMoveItems(IEnumerable`1 itemIds, FolderId destinationFolderId, Nullable`1 returnNewItemIds, ServiceErrorHandling errorHandling) 
    at Microsoft.Exchange.WebServices.Data.ExchangeService.MoveItems(IEnumerable`1 itemIds, FolderId destinationFolderId) 
    at EAS.Exchange.ExchangeProvider.MoveItemsToFolder(String folderUniqueId, String[] itemUniqueIds) 

Я пытался увеличить тайм-аут для ExchangeService:

var ews = new Microsoft.Exchange.WebServices.Data.ExchangeService(); 
ews.Timeout = 900000; // 15 minutes in milliseconds 

, но это не решает проблему. Кстати, операция успешно завершается на EWS, после чего все элементы перемещаются.

Не могли бы вы порекомендовать другое возможное решение, как исправить эту проблему?

+0

ли ваше приложение размещается на IIS? – MadDev

+0

Вы пытались переместить их в меньшие партии –

+0

@GlenScales меньшие партии работают нормально. Если я не найду возможное решение с расширением тайм-аута, я буду использовать подход с многопоточной обработкой. –

ответ

0

Ошибка 504 указывает на то, что сервер удаленный сервер испытал перерыв. Если вы испытали прямой тайм-аут, в конце концов, ничто не могло бы отправить код статуса HTTP.

Таким образом, проблема связана не с подключением между вашей программой и службой Exchange; эта проблема возникает из-за одного из следующих вопросов:

  1. Соединение между службами Exchange и некоторыми другими службами, используемыми Exchange, осуществляется через соединение. Вам нужно будет выяснить, какой компонент синхронизирован и настроить параметры таймаута, относящиеся к этой области системы. Есть много тайм-аутов, на которые нужно смотреть. Вы можете начать here.

  2. Ваш доступ к службе Exchange опосредуется прокси-сервером, а соединение между прокси-сервером и Exchange отключается. Возможно, вам придется настроить параметры прокси-сервера.

Возможно, вам удастся определить, какая из перечисленных проблем является проблемой, путем проверки журналов W3C и поиска 504s. Или вы можете сказать, что выглядит 504, когда оно происходит от прокси, просто путем его стилизации, в зависимости от того, как вы настроили вещи. Другая возможность заключается в том, чтобы добавить адрес сервера Exchange в список исключений прокси и посмотреть, не имеет ли это никакого эффекта.

+0

Я не использую прокси-сервер, я просто использую EWS Managed API 2 из службы Windows, поэтому я предполагаю, что Exchange Server должен быть каким-то образом настроен. Я вас правильно понял? –

0

Ошибка может быть вызвана значением тайм-аута соединения, установленным в IIS.

Попробуйте увеличить значение:

IIS -> Щелкните правой кнопкой мыши приложение -> Управление веб-сайт -> Дополнительные параметры -> Expand Limits -> Увеличение времени ожидания подключения

+0

Извините, я ошибся, приложение, которое работает с EWS Managed API, является службой Windows. –