Я делаю надстройку 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. Список папок, который я пытаюсь получить, представляет собой список общих папок, и он работал несколько дней назад. Я переместил несколько папок и получил это после переезда. С тех пор я удалил все папки и проверил, создал новые папки и проверил. Каждый раз одна и та же ошибка. В зависимости от того, сколько папок возвращается, ошибка обрывает ответ в разных местах.
(Извините, я не могу комментировать только ответ!)
Мы также обнаружили, что эта проблема начала возникать в последние несколько дней. Мы обнаружили, что та же проблема возникает при использовании управляемого 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.