未找到 EWS 架构信息

EWS Schema information not found

我正在尝试通过 Exchange WebService (EWS) 将 Xamarin.Android C# 程序连接到 Exchange 2013 服务器。我发送以下 XML 文件(使用 XmlTextWriter 动态创建):

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
 <soap:Header>
  <t:RequestServerVersion Version="Exchange2007_SP1" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" />
 </soap:Header>
 <soap:Body>
  <m:GetRoomLists xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" />
 </soap:Body>
</soap:Envelope>

并收到此答案(减去格式):

<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
 <s:Body>
  <s:Fault>
   <faultcode xmlns:a="http://schemas.microsoft.com/exchange/services/2006/types">a:ErrorSchemaValidation</faultcode>
   <faultstring xml:lang="de-DE">Fehler bei der Schemaüberprüfung der Anforderung: Die Schemainformationen für das Element 'http://schemas.microsoft.com/exchange/services/2006/messages:GetRoomLists' konnten nicht gefunden werden.</faultstring>
   <detail>
    <e:ResponseCode xmlns:e="http://schemas.microsoft.com/exchange/services/2006/errors">ErrorSchemaValidation</e:ResponseCode>
    <e:Message xmlns:e="http://schemas.microsoft.com/exchange/services/2006/errors">Fehler bei der Schemaüberprüfung der Anforderung.</e:Message>
    <t:MessageXml xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
     <t:LineNumber>7</t:LineNumber>
     <t:LinePosition>6</t:LinePosition>
     <t:Violation>Die Schemainformationen für das Element 'http://schemas.microsoft.com/exchange/services/2006/messages:GetRoomLists' konnten nicht gefunden werden.</t:Violation>
    </t:MessageXml>
   </detail>
  </s:Fault>
 </s:Body>
</s:Envelope>

错误文本大致翻译为 "Error while checking request scheme" (<e:Message>) 和 "Scheme information for element '<URL>:GetRoomLists' could not be found" (<t:Violation>); <faultstring> 是两者的结合。

我不明白错误在哪里。我的请求 XML 是否错误,Exchange Server 是否配置错误或缺少模块(如果是,是哪个模块?),还有其他错误吗?

我已经在 SOAP 主体中尝试了其他一些东西,例如<GetRooms><RoomList><EmailAddress>room@server</EmailAddress></RoomList></GetRooms>,同样的错误信息(抱怨 GetRooms)。

您的请求已针对 Exchange 2007 SP1 进行版本控制,但 GetRoomLists 直到 Exchange 2010 才可用。如果您使用的是 2010 或更高版本的 Exchange,请尝试将 RequestServerVersion 元素更改为 Exchange2010.