EWS всегда возвращает ErrorTimeZone, когда вы звоните с часовым поясом UTC

Примечание: Прежде всего, извините за мой плохой уровень английского.

У меня возникают проблемы со всеми запросами к EWS (с использованием управляемого API) в среде клиента, когда я использую для создания ExchangeService часовой пояс UTC (новый ExchangeService (ExchangeVersion.Exchange2007_SP1, TimeZoneInfo.Utc);)

Возвращенная ошибка: ResposeCode = ErrorTimeZone (не удалось найти часовой пояс с указанным идентификатором).

Любая идея?

Здесь у вас есть журнал, отслеживающий запрос EWS, который возвращает эту ошибку:

18  2014-05-19 13:52:33,224 6   TRACE   XXXX    SCService.exe   (null)  (null)[EwsResponseHttpHeaders] <Trace Tag="EwsResponseHttpHeaders" Tid="6" Time="2014-05-19 13:52:33Z">
HTTP/1.1 500 Internal Server Error
Content-Length: 1014
Cache-Control: private
Content-Type: text/xml; charset=utf-8
Date: Mon, 19 May 2014 13:52:35 GMT
Server: Microsoft-IIS/6.0
X-AspNet-Version: 2.0.50727
X-Powered-By: ASP.NET


</Trace>
    (null)
19  2014-05-19 13:52:33,224 6   TRACE   XXXX    SCService.exe   (null)  (null)[EwsResponse] <Trace Tag="EwsResponse" Tid="6" Time="2014-05-19 13:52:33Z" Version="15.00.0516.014">
  <?xml version="1.0" encoding="utf-8"?>
  <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Header>
      <t:ServerVersionInfo MajorVersion="8" MinorVersion="3" MajorBuildNumber="298" MinorBuildNumber="1" Version="Exchange2007_SP1" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" />
    </soap:Header>
    <soap:Body>
      <soap:Fault>
        <faultcode>soap:Client</faultcode>
        <faultstring>A time zone with the specified ID could not be found.</faultstring>
        <detail>
          <e:ResponseCode xmlns:e="http://schemas.microsoft.com/exchange/services/2006/errors">ErrorTimeZone</e:ResponseCode>
          <e:Message xmlns:e="http://schemas.microsoft.com/exchange/services/2006/errors">A time zone with the specified ID could not be found.</e:Message>
          <t:MessageXml xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
            <t:Value Name="Id">UTC</t:Value>
          </t:MessageXml>
        </detail>
      </soap:Fault>
    </soap:Body>
  </soap:Envelope>
</Trace>

Спасибо за чтение :)


person zarigueya    schedule 20.05.2014    source источник
comment
Пожалуйста, включите запрос или код, который генерирует запрос. Одного ответа недостаточно для диагностики проблемы. Спасибо.   -  person Matt Johnson-Pint    schedule 21.05.2014


Ответы (2)


Проблема заключалась в том, что по какой-то причине ни один CAS биржи в рабочей среде клиента не имел часовой пояс UTC, определенный в вашем реестре Windows.

Я смог получить доступ к owa клиента и увидел, что не могу установить часовой пояс UTC в настройках owa. Это убедило их проверить, правильно ли установлен часовой пояс UTC в одном из их CAS. А так как его не было, я попросил выставить вручную часовой пояс de utc в реестре windows. Затем я настроил свое приложение для атаки только на этот CAS, и все заработало.

Исследование клиента показало мне, что все было вызвано патчем обмена, который они недавно применили, и они уже идентифицировали и протестировали в своей предпроизводственной среде другой патч, который это исправил.

person zarigueya    schedule 04.06.2014

Просто следите за этим, если кто-то еще наткнется на это. У меня была очень похожая проблема после установки Exchange 2016 CU8 (начиная с CU5). Я обнаружил, что учетная запись с правами на олицетворение получила ошибку 500 при вызове GetServerTimeZone. Это произошло из-за того, что для учетной записи не был включен почтовый ящик и, следовательно, ей не был назначен часовой пояс. Как только я включил почту, ошибка исчезла, и служба была восстановлена.

Microsoft признала, что это не ожидаемое поведение, и отправила его на проверку.

person David Valcourt    schedule 26.01.2018