EWS HttpHeader Content-type - PullRequest
       6

EWS HttpHeader Content-type

0 голосов
/ 01 марта 2019

Я следовал инструкциям Microsoft Начать работу с клиентскими приложениями EWS Managed API , чтобы создать приложение, которое будет получать определенные элементы из почтового ящика на сервере Exchange.

Похоже, что после успешного выполнения начальных операций автоматического обнаружения, независимо от того, какой запрос я отправляю через API, я получаю ответ, содержащий следующее:

HTTP/1.1 415 Cannot process the message because the content type 'text/plain; charset=utf-8' was not the expected type 'text/xml; charset=utf-8'.

С Microsoft.Exchange.WebServices.Data.ExchangeService.TraceEnabled = true, следтипичный запрос выглядит следующим образом (этот генерируется путем вызова Folder.Bind(service, "IT", propSet)):

<?xml version="1.0" encoding="utf-16"?>
<Trace Tag="EwsRequest" Tid="1" Time="2019-03-01 14:42:02Z" Version="15.0.913.15">
  <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Header>
      <t:RequestServerVersion Version="Exchange2013" />
    </soap:Header>
    <soap:Body>
      <m:GetFolder>
        <m:FolderShape>
          <t:BaseShape>IdOnly</t:BaseShape>
        </m:FolderShape>
        <m:FolderIds>
          <t:FolderId Id="IT" />
        </m:FolderIds>
      </m:GetFolder>
    </soap:Body>
  </soap:Envelope>
</Trace>

Похоже, что заголовок Content-Type вообще отсутствует, поэтому сервер видит запрос как text/plain; charset=utf-8.Не должно быть проблемой добавлять Content-Type: text/xml; charset=utf-8 к запросам, которые делает объект ExchangeService, но элемент Dictionary HttpHeaders не может быть установлен (см. Интерфейс в ExchangeServiceBase ).

Есть идеи, как можно отправить серверу приемлемый запрос с помощью управляемого API EWS или настроить целевой сервер Exchange таким образом, чтобы он принимал запросы, которые я отправляю?Я сталкивался с большим количеством связанных с этим вопросов, но ни один из них не дал реального ответа на эту проблему.

1 Ответ

0 голосов
/ 08 августа 2019

Я получаю ту же ошибку, и единственная подсказка, которую я смог найти, была эта тема.

В конце концов я исправил это, переключившись на Microsoft.Exchange.WebServices.NETStandard -v 1.1.3 (из -v 2.0.0-beta1).

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