【发布时间】:2016-11-04 06:36:33
【问题描述】:
我目前正在开发一个项目,系统是一个 node.js Web 服务器,它订阅推送通知以了解 Exchange 服务器的资源日历中的更改。我们按照 MSDN 文档使用 SOAP 请求订阅 Exchange 服务器并与之通信。
我们使用下面的 SOAP 请求来获取更改并将它们存储在 Web 服务器的本地数据库中。 '+roomCalId' 和 '+syncState+' 值被替换为房间日历 ID 及其对应的同步状态,它们在订阅时预先存储在数据库中。
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/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">
<soap:Header>
<t:RequestServerVersion Version="Exchange2013"></t:RequestServerVersion>
<t:TimeZoneContext>
<t:TimeZoneDefinition Name="UTC" Id="UTC"></t:TimeZoneDefinition>
</t:TimeZoneContext>
<t:ExchangeImpersonation>
<t:ConnectingSID>
<t:PrimarySmtpAddress>+roomCalId+</t:PrimarySmtpAddress>
</t:ConnectingSID>
</t:ExchangeImpersonation>
</soap:Header>
<soap:Body>
<m:SyncFolderItems>
<m:ItemShape>
<t:BaseShape>AllProperties</t:BaseShape>
</m:ItemShape>
<m:SyncFolderId>
<t:DistinguishedFolderId Id="calendar" />
</m:SyncFolderId>
<m:SyncState>+syncState+</m:SyncState>
<m:MaxChangesReturned>500</m:MaxChangesReturned>
<m:SyncScope>NormalItems</m:SyncScope>
</m:SyncFolderItems>
</soap:Body>
</soap:Envelope>
该过程在最初的几个日历中运行良好,没有任何问题。但是,对于新创建的房间日历,上面的soap 请求将组织者的姓名作为约会标题而不是实际标题返回。发生这种情况是否有原因?
【问题讨论】: