狀況
安裝後,當您升級到 Microsoft Exchange Server 2016年累積更新 6 (CU6) 時,您無法存取 Outlook Web App (OWA) 或 Exchange 控制項面板 (ECP),並且您會收到下列錯誤訊息:
:-(有什麼地方發生錯誤
我們無法取得現在該資訊。請稍後再試。 X ClientId: ClientID X FEServer: Exch1此外,裝載的信箱資料庫的 Exchange 伺服器的應用程式記錄檔中記錄下列的事件資訊:
記錄檔名稱︰應用程式
來源: MSExchange OAuth 事件識別碼: 2004年 工作類別: 組態 層級: 警告 關鍵字: 傳統 使用者: n/A 電腦: mail.contoso.com 描述: 找不到憑證指紋為CertificateValue ,在目前的電腦] 或 [憑證沒有私密金鑰。需要憑證來簽署的外寄的語彙基元。記錄檔名稱: 應用程式
Source: ASP.NET 4.0.30319.0 事件識別碼: 1309年 工作類別: Web 事件 層級: 警告 關鍵字: 傳統 User: N/A 描述: 事件程式碼: 3005 事件訊息: 發生未處理的例外狀況。 事件識別碼:識別碼 事件順序: 2 事件: 1 事件詳細資料代碼: 0 應用程式資訊: 應用程式定義域: / LM/W3SVC/2/根/owa-2-DomainID 信任層級: 完整 應用程式的虛擬路徑: /owa 應用程式路徑: C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\owa\ 電腦名稱: Exch1 處理程序資訊: 處理序識別碼: 21508 處理程序名稱: w3wp.exe 帳戶名稱: NT AUTHORITY\SYSTEM 例外狀況資訊: 例外狀況型別: TargetInvocationException 例外狀況訊息: 引動過程的目標,已擲回例外狀況。 在 System.RuntimeMethodHandle.InvokeMethod (物件目標、 物件 [] 引數、 簽章的簽章,則為 True 的建構函式) 在 System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal (obj 物件、 物件 [] 參數、 物件 [] 引數) 在 System.Reflection.RuntimeMethodInfo.Invoke (物件 obj、 BindingFlags invokeAttr、 繫結器繫結器、 物件 [] 參數、 CultureInfo 文化特性) 在 < MakeDelegate > b__b (IAppBuilder 產生器) Owin.Loader.DefaultLoader.<> c__DisplayClass12。 在 < LoadImplementation > b__0(IAppBuilder builder) Owin.Loader.DefaultLoader.<> c__DisplayClass1。 在 Microsoft.Owin.Host.SystemWeb.OwinAppContext.Initialize (動作 ' 1 啟動後) 在 Microsoft.Owin.Host.SystemWeb.OwinBuilder.Build (動作 ' 1 啟動後) 在 Microsoft.Owin.Host.SystemWeb.OwinHttpModule.InitializeBlueprint() 在 [System.Threading.LazyInitializer.EnsureInitializedCore[T] (T 和布林值的目標,與初始化,物件 & syncLock,Func'1 valueFactory) 在 Microsoft.Owin.Host.SystemWeb.OwinHttpModule.Init (HttpApplication 內容) 在 System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS (IntPtr appContext、 HttpContext 的內容、 MethodInfo [] 處理常式) 在 System.Web.HttpApplication.InitSpecial (HttpApplicationState 狀態、 MethodInfo [] 處理常式、 IntPtr appContext、 HttpContext 內容) 在 System.Web.HttpApplicationFactory.GetSpecialApplicationInstance (IntPtr appContext,HttpContext 內容) 在 System.Web.Hosting.PipelineRuntime.InitializeApplication (IntPtr appContext)加密憑證不存在
在 Microsoft.Exchange.Security.Authentication.Utility.GetCertificates() 在 Microsoft.Exchange.Clients.Owa2.Server.Core.notifications.SignalR.SignalRStartup.Configuration (IAppBuilder 應用程式)要求的資訊: 要求的 URL: https://mail.contoso.com:URLID/owa/? bO = 1 要求路徑: /owa/ 使用者主機位址: UserHostAddressC:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\owa\ User: 驗證: False 驗證類型: 執行緒帳戶名稱: NT AUTHORITY\SYSTEM 執行緒資訊: 執行緒 ID: 24 執行緒帳戶名稱: NT AUTHORITY\SYSTEM 正在進行模擬: False 堆疊追蹤: 在 System.RuntimeMethodHandle.InvokeMethod (物件目標、 物件 [] 引數、 簽章的簽章,則為 True 的建構函式) 在 System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal (obj 物件、 物件 [] 參數、 物件 [] 引數) 在 System.Reflection.RuntimeMethodInfo.Invoke (物件 obj、 BindingFlags invokeAttr、 繫結器繫結器、 物件 [] 參數、 CultureInfo 文化特性) 在 < MakeDelegate > b__b (IAppBuilder 產生器) Owin.Loader.DefaultLoader.<> c__DisplayClass12。 在 < LoadImplementation > b__0(IAppBuilder builder) Owin.Loader.DefaultLoader.<> c__DisplayClass1。 在 Microsoft.Owin.Host.SystemWeb.OwinAppContext.Initialize (動作 ' 1 啟動後) 在 Microsoft.Owin.Host.SystemWeb.OwinBuilder.Build (動作 ' 1 啟動後) 在 Microsoft.Owin.Host.SystemWeb.OwinHttpModule.InitializeBlueprint() 在 [System.Threading.LazyInitializer.EnsureInitializedCore[T] (T 和布林值的目標,與初始化,物件 & syncLock,Func'1 valueFactory) 在 Microsoft.Owin.Host.SystemWeb.OwinHttpModule.Init (HttpApplication 內容) 在 System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS (IntPtr appContext、 HttpContext 的內容、 MethodInfo [] 處理常式) 在 System.Web.HttpApplication.InitSpecial (HttpApplicationState 狀態、 MethodInfo [] 處理常式、 IntPtr appContext、 HttpContext 內容) 在 System.Web.HttpApplicationFactory.GetSpecialApplicationInstance (IntPtr appContext,HttpContext 內容) 在 System.Web.Hosting.PipelineRuntime.InitializeApplication (IntPtr appContext)
原因
遺漏從 Exchange 伺服器具有用於簽署 OAuth 的 Exchange 伺服器驗證憑證時,就會發生這個問題。您可以執行下列命令以檢查憑證是否遺失:
取得 ExchangeCertificate(Get-AuthConfig)。CurrentCertificateThumbprint
如果憑證已遺失,您會收到下列錯誤訊息:
在伺服器 Exch1 上就會發生特殊的 Rpc 錯誤: 找不到憑證指紋為CertificateValue 。
+ CategoryInfo: NotSpecified: (:)[Get-ExchangeCertificate],InvalidOperationException + FullyQualifiedErrorId: [伺服器 = Exch1,RequestId =RequestID] [FailureCategory = Cmdlet InvalidOperationException] CEA009BC,Microsoft.Exchange.Management.SystemConfigurationTasks.GetExchangeCertificate解決方案
若要修正這個問題,安裝累積更新 7 的 Exchange Server 2016年或更新版本的 Exchange Server 2016年的累積更新.
因應措施
如果貴公司有多部 Exchange 伺服器,請在 [Exchange 管理命令介面,以確認 OAuth 憑證是否存在於其他 Exchange 伺服器上執行下列命令:
取得 ExchangeCertificate(Get-AuthConfig)。CurrentCertificateThumbprint
如果憑證是存在於其他 Exchange 伺服器、將憑證匯出及匯入到 Exchange 伺服器上有問題。
如果憑證不存在於組織中所有 Exchange 伺服器上,請依照下列步驟執行,以建立和部署新的 OAuth 憑證到 Exchange 伺服器:
-
執行下列命令,以建立新的 OAuth 憑證:
-
注意變更在範例 (contoso.com) 到您的組織中使用的 SMTP 網域的網域名稱、參數的值。
-
設定要用於伺服器驗證藉由執行下列命令建立的憑證:
設定 AuthConfig-NewCertificateThumbprint <ThumbprintFromStep1>-NewCertificateEffectiveDate (Get 日期) 設定 AuthConfig -PublishCertificate 設定 AuthConfig ClearPreviousCertificate
-
重新啟動 Microsoft Exchange 服務主機服務。
-
執行巨集IISReset ] 指令,來重新啟動 IIS 或回收 OWA 和 ECP 應用程式集區中執行下列命令 (在提高權限的模式):
重新啟動 WebAppPool MSExchangeOWAAppPool
重新啟動 WebAppPool MSExchangeECPAppPool注意在某些環境下,它可能要花一個小時,要發行的 OAuth 憑證。