【问题标题】:Internal server error with UpdateItem EWS call from Outlook Addin来自 Outlook 插件的 UpdateItem EWS 调用的内部服务器错误
【发布时间】:2020-12-09 09:42:12
【问题描述】:

我的目标是使用 makeewsrequestasync 更新电子邮件消息的主题。 首先,我发出一个 GetItem 请求以获取我要更新的消息的最新 ChangeKey。此请求工作正常,我成功获得了 ChangeKey 项目。

之后,我发送另一个请求以最终更新我的电子邮件主题。但是,我总是收到带有错误代码 500 的内部服务器错误。下面是我在 makeewsrequestasync 方法的数据对象中发送的请求。

<?xml version='1.0' encoding='utf-8'?><soap:Envelope xmlns:soap = 'https://schemas.xmlsoap.org/soap/envelope/'>               xmlns:t='http://schemas.microsoft.com/exchange/services/2006/types'>  <soap:Header>    <t:RequestServerVersion Version='Exchange2013'/>  </soap:Header>  <soap:Body>     <UpdateItem MessageDisposition='SaveOnly' ConflictResolution='AutoResolve' xmlns='http://schemas.microsoft.com/exchange/services/2006/messages'>       <ItemChanges>        <t:ItemChange>         <t:ItemId Id='AAMkAGNkZWM1OTUzLTVhMzAtNDQyZS1hYzNmLTFhNDQ5ODc4NTYwMABGAAAAAABB8zSmRPuuRoRPHF1NS2srBwA9GscujNfkQL9s6uP7T+MpAAAAAAEMAADOgKz/bqQyTqxlZnzyc9ndAAH8Uu4tAAA=' ChangeKey='CQAAABYAAADOgKz/bqQyTqxlZnzyc9ndAAILRklX'/>         <t:Updates>           <t:SetItemField>            <t:FieldURI FieldURI='item:Subject'/>            <t:Message>              <t:Subject>[Venga] MyAnalytics | Network Edition</t:Subject>             </t:Message>             </t:SetItemField >           </t:Updates>          </t:ItemChange>         </ItemChanges>        </UpdateItem>  </soap:Body></soap:Envelope>

我已经尝试了几种方法来更新我的主题,但不幸的是没有成功。 有一个类似的问题,我用来构建我的请求 (similar Question),但我总是遇到内部服务器错误。我很想得到一个建议,如何解决这个问题。

【问题讨论】:

    标签: outlook office365 exchangewebservices outlook-web-addins


    【解决方案1】:

    您的 XML 请求存在多个问题(甚至不是有效的 XML)

    <soap:Envelope xmlns:soap = 'https://schemas.xmlsoap.org/soap/envelope/'>
    

    命名空间架构错误,您已将正确的架构修改为 https 注意这与使用 http 无关,或者 https 只是架构定义,通过更改它,您已使其无效。您还在末尾添加了一个额外的 > 来关闭标签,但是您有额外的命名空间属性应该包含在命名空间中,这些属性在您的请求中此时会变成无效文本,例如它应该是

    <?xml version='1.0' encoding='utf-8'?><soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/' xmlns:t='http://schemas.microsoft.com/exchange/services/2006/types'>
    

    在结束的 SetItemField 标记中还有额外的空格。这似乎现在有效

    <?xml version='1.0' encoding='utf-8'?>
    <soap:Envelope
        xmlns:soap = 'http://schemas.xmlsoap.org/soap/envelope/'
        xmlns:t='http://schemas.microsoft.com/exchange/services/2006/types'>
        <soap:Header>
            <t:RequestServerVersion Version='Exchange2013'/>
        </soap:Header>
        <soap:Body>
            <UpdateItem MessageDisposition='SaveOnly' ConflictResolution='AutoResolve'
                xmlns='http://schemas.microsoft.com/exchange/services/2006/messages'>
                <ItemChanges>
                    <t:ItemChange>
                        <t:ItemId Id='AAMkAGNkZWM1OTUzLTVhMzAtNDQyZS1hYzNmLTFhNDQ5ODc4NTYwMABGAAAAAABB8zSmRPuuRoRPHF1NS2srBwA9GscujNfkQL9s6uP7T+MpAAAAAAEMAADOgKz/bqQyTqxlZnzyc9ndAAH8Uu4tAAA=' ChangeKey='CQAAABYAAADOgKz/bqQyTqxlZnzyc9ndAAILRklX'/>
                        <t:Updates>
                            <t:SetItemField>
                                <t:FieldURI FieldURI='item:Subject'/>
                                <t:Message>
                                    <t:Subject>[Venga] MyAnalytics | Network Edition</t:Subject>
                                </t:Message>
                            </t:SetItemField>
                        </t:Updates>
                    </t:ItemChange>
                </ItemChanges>
            </UpdateItem>
        </soap:Body>
    </soap:Envelope>

    【讨论】:

    • 感谢您的快速答复。您在请求中的修复工作有效,现在我可以继续工作。
    • 嘿@Glen,我很想再问你一个问题。我正在使用最新版本的 Chrome 64 位浏览器在 Outlook Web 中测试我的 Outlook 插件。如主要问题中所述,我只想改变主题。因为你给了我修复,我在调用 makeewsrequest 后从来没有收到错误。但不幸的是,主题不会每次都更新。我已经测试了一个多星期了,我不知道什么时候可以正确更改主题,什么时候不可以。尽管 makeewsrequestasync 的 xml 响应成功,但大多数情况下主题保持不变。有什么建议吗?
    • 我仍然没有找到解决方案。有没有人可以帮助我或给我建议?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-06
    • 2020-08-23
    相关资源
    最近更新 更多