Веб-служба Exchange (EWS) выдает внутреннюю ошибку сервера в середине успешного ответа FindFolder

Я делаю надстройку Office на Javascript и внезапно получаю xml-документ Internal Server Error в середине успешного документа с ответом на мыло.

Раньше это работало, но в настоящее время я получаю ответ с новым XML-документом сбоя в мидделе. См. FolderId Id=", а затем новые звездочки XML-документа. Я никогда не видел этого раньше. Кто-нибудь знает, что не так, или как это можно диагностировать? Ответ был немного обрезан, чтобы его было легче читать, и, по-видимому, ссылки на пространство имен приводят к тому, что сообщение помечается как спам.

<?xml version = "1.0" encoding = "utf-8"?>
<s:Envelope>
...
        <s:Body>
            <m:FindFolderResponse>
                <m:ResponseMessages>
                    <m:FindFolderResponseMessage ResponseClass = "Success">
                        <m:ResponseCode>NoError</m:ResponseCode>
                        <m:RootFolder TotalItemsInView = "1" IncludesLastItemInRange = "true">
                            <t:Folders>
                                <t:Folder>
                                    <t:FolderId Id = "
                                        <?xml version = "1.0" encoding = "utf-8"?>
                                        <s:Envelope>
                                            <s:Header>
                                                <Action s:mustUnderstand = "1">*</Action>
                                            </s:Header>
                                            <s:Body>
                                                <s:Fault>
                                                    <faultcode
                                                        xmlns:a = "http://schemas.microsoft.com/exchange/services/2006/types">a:ErrorInternalServerError
                                                    </faultcode>
                                                    <faultstring xml:lang = "en-US">An internal server error occurred. The operation failed.</faultstring>

Я вызываю EWS следующим образом:

const req = "...SOAP Request XML...";

Office.context.mailbox.makeEwsRequestAsync(req, (asyncResult) => { 
   logger.log("FindFolder: " + asyncResult.value);
});

Сервер Exchange — Office 365. Список папок, который я пытаюсь получить, представляет собой список общих папок, и он работал несколько дней назад. Я переместил несколько папок и получил это после переезда. С тех пор я удалил все папки и проверил, создал новые папки и проверил. Каждый раз одна и та же ошибка. В зависимости от того, сколько папок возвращается, ошибка обрывает ответ в разных местах.


2
127
2

Ответы:

Решено

(Извините, я не могу комментировать только ответ!)

Мы также обнаружили, что эта проблема начала возникать в последние несколько дней. Мы обнаружили, что та же проблема возникает при использовании управляемого API EWS. Таким образом, это похоже на проблему со стороны EWS. Насколько я могу судить, это похоже на настоящую проблему, а не просто на изменение поведения.

Тема GitHub EWS Managed API об этой проблеме: https://github.com/OfficeDev/ews-managed-api/issues/294

И я написал об этом в Microsoft Q&A здесь: https://learn.microsoft.com/en-us/answers/questions/1229639/exchange-web-services-ews-findfolders-produces-a-5


У нас такая же проблема. Я подключаю прослушиватель к EWS, и ошибка возникает в GetFolder, FindItems и т. д., если мы запрашиваем PublicFolders.

Это пример неправильного ответа, который я получил

    <?xml version = "1.0" encoding = "utf-8"?>
<s:Envelope xmlns:s = "http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
    <h:ServerVersionInfo MajorVersion = "15" MinorVersion = "20" MajorBuildNumber = "6298" MinorBuildNumber = "30" Version = "V2018_01_08" xmlns:h = "http://schemas.microsoft.com/exchange/services/2006/types" xmlns:xsd = "http://www.w3.org/2001/XMLSchema" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"/>
</s:Header>
<s:Body>
    <m:GetFolderResponse xmlns:m = "http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:xsd = "http://www.w3.org/2001/XMLSchema" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:t = "http://schemas.microsoft.com/exchange/services/2006/types">
        <m:ResponseMessages>
            <m:GetFolderResponseMessage ResponseClass = "Success">
                <m:ResponseCode>NoError</m:ResponseCode>
                <m:Folders>
                    <t:Folder>
                        <t:FolderId Id = "<?xml version = " 1.0" encoding = "utf-8" ?><s:Envelope xmlns:s = "http://schemas.xmlsoap.org/soap/envelope/">
                            <s:Header>
                                <Action s:mustUnderstand = "1" xmlns = "http://schemas.microsoft.com/ws/2005/05/addressing/none">*</Action>
                            </s:Header>
                            <s:Body>
                                <s:Fault>
                                    <faultcode xmlns:a = "http://schemas.microsoft.com/exchange/services/2006/types">a:ErrorInternalServerError</faultcode>
                                    <faultstring xml:lang = "en-US">An internal server error occurred. The operation failed.</faultstring>
                                    <detail>
                                        <e:ResponseCode xmlns:e = "http://schemas.microsoft.com/exchange/services/2006/errors">ErrorInternalServerError</e:ResponseCode>
                                        <e:Message xmlns:e = "http://schemas.microsoft.com/exchange/services/2006/errors">An internal server error occurred. The operation failed.</e:Message>
                                    </detail>
                                </s:Fault>
                            </s:Body>
                        </s:Envelope>

Посмотрите на t: FolderId Id = " Как вы можете видеть, xml-сообщение «InternalServerError» объединено с исходным сообщением GetFodlerResponse, и ответ становится нечитаемым! Я почти уверен, что проблема возникла где-то со стороны Microsoft.