本文介绍了Exchange服务器版本"V2_22"返回Office 365中断模式-后果如何?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我只是注意到与 https://outlook.office365.com上的Office365 Exchange Web服务交谈. /ews/exchange.asmx 我在SOAP响应标头中得到了此信息:

I just notice that talking to Office365 Exchange Web Services at https://outlook.office365.com/ews/exchange.asmx I get this in my SOAP response header:

<Envelope>
  <Header>
    <ServerVersionInfo MajorVersion="15" MinorVersion="0" MajorBuildNumber="1049" MinorBuildNumber="23" Version="V2_22"/>
  </Header>

这意味着现在,版本'schema version'属性打破了我们先前使用的版本模式:
Exchange2007,Exchange2007_SP1,Exchange2010,Exchange2010_SP1,Exchange2010_SP2,Exchange2013

This means that the Version 'schema version' property now breaks the pattern of versions that we had earlier:
Exchange2007, Exchange2007_SP1, Exchange2010, Exchange2010_SP1, Exchange2010_SP2, Exchange2013

在我通过Google找到的架构文件(搜索<xs:simpleType name="ExchangeVersionType">)中,我迟于找不到任何东西<xs:enumeration value="Exchange2013"/>(例如,位于 http://msdn .microsoft.com/en-us/library/ee237685%28v = exchg.80%29.aspx )

In the schema files I found through Google (searching for <xs:simpleType name="ExchangeVersionType">) I could not find anything later than<xs:enumeration value="Exchange2013"/> (e.g. at http://msdn.microsoft.com/en-us/library/ee237685%28v=exchg.80%29.aspx)

如果我使用此"V2_22"字符串执行SOAP请求,我仍然可以获得有效的答案.

If I do a SOAP request with this "V2_22" string, I still get valid answers.

<soapenv:Envelope
  xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:typ="http://schemas.microsoft.com/exchange/services/2006/types"
  xmlns:mes="http://schemas.microsoft.com/exchange/services/2006/messages">
   <soapenv:Header>
      <typ:RequestServerVersion Version="V2_22"/>
   </soapenv:Header>

但是现在看来,返回的版本不再是确定Exchange服务器版本的可靠方法.如果未在任何地方记录V2_22,谁会说明天不会突然将其更改为V2_23?

But it now looks as if the returned Version is no longer a reliable way to determine the Exchange server version. If V2_22 is not documented anywhere, who says it will not suddenly change to V2_23 tomorrow?

问题:这是否意味着我现在必须更改版本检测代码以查看MajorVersion,然后维护MajorVersion和ExchangeVersionType 我自己之间的交叉引用?这太可怕了:要维护的另一个依赖项是另一个潜在的代码中断.

Question: Does this mean I will now have to change my version detection code to look at MajorVersion and then maintain a cross reference between MajorVersion and ExchangeVersionType myself? That is horrible: another dependency to maintain is another potential code break.


这是给出第一段中提到的结果的实际调用,包括HTTP交换:


This is the actual call that gives the result mentioned in the first paragraph, including the HTTP exchange:

>> "POST /ews/exchange.asmx HTTP/1.1[\r][\n]"
>> "Accept-Encoding: gzip,deflate[\r][\n]"
>> "SOAPAction: "http://schemas.microsoft.com/exchange/services/2006/messages/ResolveNames"[\r][\n]"
>> "Content-Type: text/xml; charset=utf-8[\r][\n]"
>> "Content-Length: 610[\r][\n]"
>> "Host: outlook.office365.com[\r][\n]"
>> "Connection: Keep-Alive[\r][\n]"
>> "User-Agent: Apache-HttpClient/4.1.1 (java 1.5)[\r][\n]"
>> "[\r][\n]"
>> "<soapenv:Envelope [\n]"
>> "  xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" [\n]"
>> "  xmlns:typ="http://schemas.microsoft.com/exchange/services/2006/types" [\n]"
>> "  xmlns:mes="http://schemas.microsoft.com/exchange/services/2006/messages">[\n]"
>> "   <soapenv:Header>[\n]"
>> "      <typ:RequestServerVersion Version="Exchange2007_SP1"/>[\n]"       OR: Exchange2013_SP1
>> "   </soapenv:Header>[\n]"
>> "   <soapenv:Body>[\n]"
>> "    <!-- mes:ResolveNames ReturnFullContactData="1" SearchScope="ActiveDirectoryContacts"-->[\n]"
>> "    <mes:ResolveNames ReturnFullContactData="1">[\n]"
>> "         <mes:UnresolvedEntry>be</mes:UnresolvedEntry>[\n]"
>> "      </mes:ResolveNames>[\n]"
>> "   </soapenv:Body>[\n]"
>> "</soapenv:Envelope>"

<< "HTTP/1.1 401 Anonymous Request Disallowed[\r][\n]"
<< "Server: Microsoft-IIS/8.0[\r][\n]"
<< "request-id: 535f1eb3-294b-4036-a61a-6176ae87a60e[\r][\n]"
<< "Set-Cookie: ClientId=LZLKG0VGKSZMUMEBPSDQ; expires=Fri, 16-Oct-2015 14:42:02 GMT; path=/; HttpOnly[\r][\n]"
<< "X-Powered-By: ASP.NET[\r][\n]"
<< "X-FEServer: DB3PR01CA0057[\r][\n]"
<< "WWW-Authenticate: Basic Realm=""[\r][\n]"
<< "Date: Thu, 16 Oct 2014 14:42:02 GMT[\r][\n]"
<< "Content-Length: 0[\r][\n]"
<< "[\r][\n]"

>> "POST /ews/exchange.asmx HTTP/1.1[\r][\n]"
>> "Accept-Encoding: gzip,deflate[\r][\n]"
>> "SOAPAction: "http://schemas.microsoft.com/exchange/services/2006/messages/ResolveNames"[\r][\n]"
>> "Content-Type: text/xml; charset=utf-8[\r][\n]"
>> "Content-Length: 610[\r][\n]"
>> "Host: outlook.office365.com[\r][\n]"
>> "Connection: Keep-Alive[\r][\n]"
>> "User-Agent: Apache-HttpClient/4.1.1 (java 1.5)[\r][\n]"
>> "Cookie: ClientId=LZLKG0VGKSZMUMEBPSDQ[\r][\n]"
>> "Cookie2: $Version=1[\r][\n]"
>> "Authorization: Basic am[snip]Q==[\r][\n]"
>> "[\r][\n]"
>> "<soapenv:Envelope [\n]"
>> "  xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" [\n]"
>> "  xmlns:typ="http://schemas.microsoft.com/exchange/services/2006/types" [\n]"
>> "  xmlns:mes="http://schemas.microsoft.com/exchange/services/2006/messages">[\n]"
>> "   <soapenv:Header>[\n]"
>> "      <typ:RequestServerVersion Version="Exchange2013_SP1"/>[\n]"
>> "   </soapenv:Header>[\n]"
>> "   <soapenv:Body>[\n]"
>> "    <!-- mes:ResolveNames ReturnFullContactData="1" SearchScope="ActiveDirectoryContacts"-->[\n]"
>> "    <mes:ResolveNames ReturnFullContactData="1">[\n]"
>> "         <mes:UnresolvedEntry>be</mes:UnresolvedEntry>[\n]"
>> "      </mes:ResolveNames>[\n]"
>> "   </soapenv:Body>[\n]"
>> "</soapenv:Envelope>"

<< "HTTP/1.1 200 OK[\r][\n]"
<< "Cache-Control: private[\r][\n]"
<< "Transfer-Encoding: chunked[\r][\n]"
<< "Content-Type: text/xml; charset=utf-8[\r][\n]"
<< "Content-Encoding: gzip[\r][\n]"
<< "Vary: Accept-Encoding[\r][\n]"
<< "Server: Microsoft-IIS/8.0[\r][\n]"
<< "request-id: b1ce960a-e0d1-4545-9fe7-6711fc34f7ad[\r][\n]"
<< "X-CalculatedBETarget: db3pr02mb203.eurprd02.prod.outlook.com[\r][\n]"
<< "X-DiagInfo: DB3PR02MB203[\r][\n]"
<< "X-BEServer: DB3PR02MB203[\r][\n]"
<< "X-AspNet-Version: 4.0.30319[\r][\n]"
<< "Set-Cookie: exchangecookie=e1[snip]d01; expires=Fri, 16-Oct-2015 14:42:02 GMT; path=/; HttpOnly[\r][\n]"
<< "Set-Cookie: X-BackEndCookie2=jan@[snip].onmicrosoft.com=u56[snip]g==; expires=Sat, 15-Nov-2014 14:42:02 GMT; path=/ews; secure; HttpOnly[\r][\n]"
<< "Set-Cookie: X-BackEndCookie=jan@[snip].onmicrosoft.com=u56[snip]0=; expires=Sat, 15-Nov-2014 14:42:02 GMT; path=/ews; secure; HttpOnly[\r][\n]"
<< "X-Powered-By: ASP.NET[\r][\n]"
<< "X-FEServer: DB3PR01CA0057[\r][\n]"
<< "Date: Thu, 16 Oct 2014 14:42:02 GMT[\r][\n]"
<< "[\r][\n]"
<< "38c[\r][\n]"
<< "[0x1f][0x8b][snip][0xfc][\n]"
<< "[0xac][0x8f][snip][0x85][\n]"
<< "E{}W>[0xcb][0xda][snip][0xbc]"
<< "[\r][\n]"
<< "a[\r][\n]"
<< "t[0x4][0x13][0x3][0xc3][0xc2][0xb6][0xc6][0xb8][0x5]"
<< "[\r][\n]"
<< "b[\r][\n]"
<< "G[0xff][0xf]6'>[0x1c]I[0x8][0x0][0x0]"
<< "[\r][\n]"
<< "0[\r][\n]"
<< "[\r][\n]"

推荐答案

Office 365 EWS的架构版本模式未更改.现在返回的架构版本为"Exchange2013_SP1",我刚刚通过转到 https://outlook进行了验证. WSDL引用的office365.com/ews/messages.xsd (请参阅下面的内容,我所指的行).

The schema version pattern hasn't changed for Office 365 EWS. The schema version now returned is "Exchange2013_SP1" and I just verified it by going to https://outlook.office365.com/ews/messages.xsd referenced by the WSDL (see below for the line I am referring to).

xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" version="Exchange2013_SP1" elementFormDefault="qualified" id="messages">

我相信我们总是将ServerVersionInfo作为附加诊断信息返回,以帮助调试特定版本可能存在问题的情况.但是您应该继续使用架构版本,例如Exchange2013_SP1作为SOAP API版本.

I believe we have always returned the ServerVersionInfo as additional diagnostics to help with debugging cases where a specific build may have an issue. But you should continue to use the schema version e.g. Exchange2013_SP1 as the SOAP API version.

更新:我们发现了一个错误,该错误导致我们返回V2_ *作为版本.当应用程序请求服务器版本(例如Exchange2013_SP1)时,应在响应中包含该版本作为版本"的值.我们正在努力解决此问题.感谢您报告此问题!

UPDATE: We have identified a bug that is causing us to return V2_* as the Version. When an app requests a server version such as Exchange2013_SP1, that same version should be included as the value for "Version" in the response. We are working to fix this. Thanks for reporting this issue!

如果您有任何疑问或需要更多信息,请告诉我.

Please let me know if you have any questions or need more info.

谢谢

Venkat

这篇关于Exchange服务器版本"V2_22"返回Office 365中断模式-后果如何?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-07 08:06