我正在尝试通过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>
错误文本大致翻译为“检查请求方案时出错”(<e:Message>
)和“无法找到元素'<URL>:GetRoomLists
的方案信息”(<t:Violation>
); <faultstring>
是两者的结合。
我不明白错误在哪里。我的请求XML是否错误,是Exchange Server配置错误还是缺少模块(如果是,哪一个?),是否还有其他错误?
我在SOAP主体中尝试了其他几个方面,例如<GetRooms><RoomList><EmailAddress>room@server</EmailAddress></RoomList></GetRooms>
,错误消息相同(抱怨GetRooms
)。
答案 0 :(得分:0)
您的请求已版本化为Exchange 2007 SP1,但GetRoomLists在Exchange 2010之前无法使用。如果您使用的是2010或更高版本的Exchange,请尝试更改{{1 }}元素到RequestServerVersion
。