狀況
安裝後,當您升級到 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 憑證。