「深刻 Exchange 2013」MAPI over HTTP實戰配置

在前面咱們聊Outlook Anywhere的文章裏頭,我提到了MAPI over HTTP這個Exchange Server 2013 SP1中新增長的功能,此次這篇文章我們就詳細說說這個新的傳輸協議是什麼,以及實戰如何去配置它。php

什麼是MAPI/HTTP,有什麼好處?web

之前版本中(Exchange 2010),用的是RPC over HTTP(外部網絡outlook anywhere)以及RPC Direct(內部網絡)鏈接,Exchange 2013裏,全部的鏈接都經過Outlook Anywhere,也就是RPC over HTTP來傳輸;到即將到來的Exchange 2016,至少我如今看到的風聲是,將全部的RPC over HTTP替換成 MAPI over HTTP了。因此在Ex2013 SP1裏,微軟先推出了這個特性來試試水,看看收效如何。那麼我們也不要背道而馳,照着微軟的戰略也來學習配置看看。api

我們仍是來看看這兩張圖,進行一個初步的分析。上面一張是舊的RPC/HTTP的傳輸過程,能夠發現其實傳輸的流量封裝層次是MAPI/RPC/HTTP這樣一個三層封裝,每次Outlook客戶端進行鏈接都須要進行RPC_DATA_IN和RPC_DATA_OUT這麼個來回2次的過程,再加上HTTPS與MAPI的鏈接。服務器和客戶端之間會生成2個TCP長鏈接,4個活動鏈接。服務器

clip_p_w_picpath002[4]

下面一張圖則是Mapi Over HTTP,能夠看到將整個MAPI鏈接移到了標準的HTTP請求/響應模型上。這樣就會減小客戶端與服務器之間的鏈接,它們之間最大會存在2個活動鏈接,1個長鏈接和1個按需短鏈接(下文會提到這個按需)。網絡

clip_p_w_picpath004[4]

從上面兩張圖裏還能夠看到,一個是MAPI/RPC/HTTP,另外一個是MAPI/HTTP,取消了整個RPC封裝。取消了這一層封裝也意味着取消了這一層的請求和迴應。這就是爲何上面會提到鏈接數減小的緣由。架構

clip_p_w_picpath006[4]

減小鏈接數和下降封裝的層數帶來的直接好處就是下降客戶端與服務器之間的交互時間,或者說,是更爲貼近現代化場景(無線網絡和遠程辦公網絡)的設計。據微軟本身吹牛逼說,當用戶第一次配置好帳號打開Outlook的時候停留在LOGO框的時間減小了70%……app

另一個特色就是,上面提到了的按需鏈接,它其實能夠被理解爲一個15分鐘內有效的鏈接窗口,當客戶端第一次與服務器創建鏈接完畢以後,MBX上會留出這麼一個鏈接窗口進行按需鏈接,按什麼需呢?從新鏈接的需求,也就是說客戶端的網絡短暫斷開了以後,再進行重連,它就直接走這個窗口連進來,無需重複以前的驗證過程。微軟也吹牛逼說:一樣休眠起來的筆記本電腦,用MAPI/HTTP的比用RPC/HTTP的重連時間短10秒……ide

這個時間窗口會在之後的版本中提的更大。工具

還有另外的一個特色,以前的RPC鏈接及其不具備可維護性(只能經過一些專門的微軟的內部工具來進行debug),如今則是我們的老朋友HTTP封裝,不光提供了日誌,甚至還有debug信息窗口。要知道RPC進程掛死這種故障只能經過重啓來解決……學習

微軟的路線就是慢慢去RPC化。然而這些特性都是從O365裏學來的,在以前2016架構前瞻的文章裏我也提到,微軟不少新概念都被應用到O365上,而後以爲成熟了再作成功能特性給on-premises用戶。

OK,我們再說一下客戶端是如何使用MAPI/HTTP與服務器進行鏈接的:

一、 Outlook客戶端,發現本身是MAPI/HTTP兼容的客戶端,就在autodiscover請求裏帶上一個參數X-MapiHTTPCapability=1

二、 服務器收到了這個autodiscover請求,發現有Mapi/HTTP參數,因而響應MAPI/HTTP的配置信息給客戶端。配置信息裏包括鏈接URL驗證方法等等,固然前提是你的服務器已經打開了這個功能。

三、 Outlook收到這些信息以後發現它能夠跟服務器創建Mapi/HTTP鏈接,因而告訴用戶重啓Outlook,若是用戶不重啓Outlook,則會繼續使用RPC over HTTP

配置要求:

講了這麼多理論了,我們開始實際配置一下這玩意兒,首先是MAPI over HTTP的一些前提條件。

對於服務器:Exchange Server 2013 SP1必需,再加個.Net Framework 4.5.2,你可能在有些文檔裏看到須要KB2908387/KB2908385/KB2908383這幾個補丁,這幾個hotfix如今只能聯繫MCS才能下載了…因此打個.Net Framework4.5.2吧

客戶端要求:outlook 2013 SP1,outlook 2010 SP2 以及更新 KB2956191 和 KB2965295

配置步驟:

在全部的的CAS服務器上添加系統變量:變量名和值見下圖:

clip_p_w_picpath007[4]

接下來配置Mapi虛擬目錄,自己在Exchange 2013 SP1安裝的時候,就已經部署好了Mapi的虛擬目錄。可是默認的,只配置好了internalURL,因此若是要對外訪問,那麼就得再配置一下ExternalUrl和外部訪問時所用的驗證方式。命令爲

Set-MapiVirtualDirectory –Identity 「EX01\mapi (default web site)」 -ExternalUrl 
  -IISAuthenticationMethods Negotiate

clip_p_w_picpath009[4]

clip_p_w_picpath011[4]

注意這裏爲何IIS驗證要配置成協商呢?由於MAPI/HTTP是按照HTTP的套路進行驗證的,即客戶端發送一個anonymous的HTTP請求,而後Exchange就在HTTP的層面告訴他驗證方法,而不用autodiscover再去宣告驗證方法。因此按照標準給個協商方法就能夠了。

最後一步,爲整個組織開啓MapiOverHTTP功能。命令:

Set-OrganizationConfig –MapiHttpEnabled $True

clip_p_w_picpath013[4]

OK,到這裏MAPI/HTTP功能就正式配置完畢了,爲確保生效,最好是按照順序重啓一下組織裏的全部Ex服務器,有些人說我只重啓CAS或者只重啓MBX就生效了嘛,反正我在配置時的場景是多臺全角色,我就都給重啓了~

如何肯定MAPI/HTTP生效了呢,重啓完服務器以後,讓客戶端再進行一次自動發現,客戶端就會蹦個報錯出來:

clip_p_w_picpath015[5]

而後咱按照提示,重啓Outlook,再看一下鏈接狀態,就會發現,沒有代理服務器了而且後面的協議裏只有HTTP,驗證方法爲協商,SSL加密。服務器名稱也是鏈接到了mapi的虛擬目錄上的終結點。

clip_p_w_picpath017[4]

clip_p_w_picpath019[4]    
下面來一張RPC/HTTP的鏈接狀態圖,你們能夠作參考

clip_p_w_picpath021[4]

客戶端上另一個變化是,以下圖,outlook anywhere的配置沒了~

clip_p_w_picpath023[4]

這樣我們就是配置成功了,接下來再多說一點,關於MAPI/HTTP的debug。首先是Mapi/HTTP的日誌的存放路徑:

CAS服務器: %ExchangeInstallPath%\Logging\HttpProxy\Mapi\

Mailbox服務器: %ExchangeInstallPath%\Logging\MAPI Client Access\

Mailbox服務器: %ExchangeInstallPath%\Logging\MAPI Address Book Service\

而後,你能夠經過https://CAS的FQDN/MAPI/emsmdb/來進行一個鏈接檢測,須要輸入憑據

clip_p_w_picpath025[4]

更詳細的信息,則是在上面一個url的後面再接上一個?showdebug=yes,就是https://cas的fqdn/mapi/emsmdb/?showdebug=yes

這個裏面的信息更爲詳細,詳細到此次請求交互的每一步都給你列出來。有作HTTP基礎的同窗必定不會陌生了。

clip_p_w_picpath027[4]

若是客戶端想臨時關掉MAPI/HTTP這個功能,使用RPC/HTTP功能的話,ok沒問題,改註冊表吧:

HKEY\CURRENT USER\Software\MicrosoftExchange => 建立一個dword值 「MapiHttpDisabled」 值爲1

而後從新打開Outlook,執行從新Autodiscover。改回使用MAPI/HTTP就把這個值改爲0。

最後再來幾點注意事項:

1. 開啓了Mapi over HTTP以後,Outlook 2013 SP1沒法經過Ex2013SP1去訪問早期版本的公共文件夾。

2. CAS服務器上的CPU使用率會上升,可是內存使用率降低,約50%-60%每用戶

3. 沒法使用MAPI Over HTTP時,Outlook會自動回退到RPC over HTTP

4. UAG 2010 SP4目前不支持MAPI Over HTTP的發佈

5. Exchange 2016當中也許會默認使用MAPI over HTTP

本篇文章也有對應的教學視頻

相關文章
相關標籤/搜索