อาการ
หลัง จากที่คุณติดตั้งการปรับรุ่นเป็น Microsoft Exchange Server 2016 สะสมปรับปรุง 6 (CU6), คุณไม่สามารถเข้าถึง Outlook Web App (OWA) หรือแลกเปลี่ยนควบคุมแผง (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 ประเภทงาน: เว็บเหตุการณ์ ระดับ: คำเตือน คำสำคัญ: แบบคลาสสิค User: N/A คำอธิบาย: รหัสเหตุการณ์: 3005 ข้อความเหตุการณ์: เกิดข้อยกเว้นเกิดขึ้น รหัสเหตุการณ์: EventID ลำดับเหตุการณ์: 2 เกิดเหตุการณ์: 1 รหัสรายละเอียดเหตุการณ์: 0 ข้อมูลของโปรแกรมประยุกต์: โดเมนของแอพลิเคชัน: / LM/W3SVC/2/ราก/owa-2-DomainID เชื่อถือระดับ: ทั้งหมด เส้นทางเสมือนของแอพลิเคชัน: /owa เส้นทางของโปรแกรมประยุกต์: Server\V15\ClientAccess\owa\ Files\Microsoft\Exchange C:\Program ชื่อเครื่อง: Exch1 ประมวลผลข้อมูล: รหัสกระบวนการ: 21508 ชื่อกระบวนการ: w3wp.exe ชื่อบัญชี: NT AUTHORITY\SYSTEM ข้อมูลข้อยกเว้น: ชนิดของข้อยกเว้น: TargetInvocationException ข้อความข้อยกเว้น: ข้อยกเว้นตามเป้าหมายของการเรียก ใน System.RuntimeMethodHandle.InvokeMethod (วัตถุเป้าหมาย วัตถุ[]อาร์กิวเมนต์ ลายเซ็นลายเซ็น คอนสตรัคเตอร์บูลีน) ใน System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal (กับวัตถุวัตถุ พารามิเตอร์[]วัตถุ วัตถุ[]อาร์กิวเมนต์) ใน System.Reflection.RuntimeMethodInfo.Invoke (กับวัตถุวัตถุ BindingFlags invokeAttr, Binder binder พารามิเตอร์[]วัตถุ CultureInfo culture) ที่อยู่ Owin.Loader.DefaultLoader <> c__DisplayClass12 b__b < MakeDelegate > (ตัวสร้าง IAppBuilder) ที่อยู่ Owin.Loader.DefaultLoader <> c__DisplayClass1 b__0(IAppBuilder builder) < LoadImplementation > ใน 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, valueFactory Func'1) ที่ 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/ ? กล่อง = 1 เส้นทางที่ร้องขอ: /owa/ ผู้ใช้ที่อยู่โฮสต์: UserHostAddressC:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\owa\ User: มีการรับรองความถูกต้อง: เท็จ ชนิดการรับรองความถูกต้อง: เธรดชื่อบัญชี: NT AUTHORITY\SYSTEM รายละเอียดของเธรด: หมายเลขหัวข้อ: 24 เธรดชื่อบัญชี: NT AUTHORITY\SYSTEM ถูกปลอม: เท็จ ติดตามสแต็ค: ที่ System.RuntimeMethodHandle.InvokeMethod (วัตถุเป้าหมาย วัตถุ[]อาร์กิวเมนต์ ลายเซ็นลายเซ็น คอนสตรัคเตอร์บูลีน) ใน System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal (กับวัตถุวัตถุ พารามิเตอร์[]วัตถุ วัตถุ[]อาร์กิวเมนต์) ใน System.Reflection.RuntimeMethodInfo.Invoke (กับวัตถุวัตถุ BindingFlags invokeAttr, Binder binder พารามิเตอร์[]วัตถุ CultureInfo culture) ที่อยู่ Owin.Loader.DefaultLoader <> c__DisplayClass12 b__b < MakeDelegate > (ตัวสร้าง IAppBuilder) ที่อยู่ Owin.Loader.DefaultLoader <> c__DisplayClass1 b__0(IAppBuilder builder) < LoadImplementation > ใน 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, valueFactory Func'1) ที่ 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)
สาเหตุ
ปัญหานี้เกิดขึ้นหากการแลกเปลี่ยนรับรองความถูกต้องใบรับรองเซิร์ฟเวอร์ที่มีใช้งานสำหรับการลงชื่อเข้าใช้ OAuth ขาดหายไปจากเซิร์ฟเวอร์ Exchange คุณสามารถเรียกใช้คำสั่งต่อไปนี้เพื่อตรวจสอบว่า ใบรับรองขาดหายไป:
รับ ExchangeCertificate (การรับการ AuthConfig) CurrentCertificateThumbprint
ถ้าใบรับรองหายไป คุณจะได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:
มีข้อผิดพลาด Rpc พิเศษเกิดขึ้นบนเซิร์ฟเวอร์ Exch1: ไม่พบใบรับรองที่ มีรหัสประจำตัวCertificateValue
+ CategoryInfo: NotSpecified: (:) [การรับการ ExchangeCertificate], InvalidOperationException + FullyQualifiedErrorId: [เซิร์ฟเวอร์ = Exch1, RequestId =RequestID] [FailureCategory = Cmdlet InvalidOperationException] CEA009BC,Microsoft.Exchange.Management.SystemConfigurationTasks.GetExchangeCertificateการแก้ปัญหา
เมื่อต้องการแก้ไขปัญหานี้ ติดตั้ง7 ปรับปรุงสะสมสำหรับ Exchange Server 2016 หรือเป็นวันหลังจากการปรับปรุงสะสมสำหรับ Exchange Server 2016.
วิธีแก้ปัญหา
ถ้าองค์กรของคุณมีหลายเซิร์ฟเวอร์ Exchange เรียกใช้คำสั่งต่อไปนี้ในเชลล์จัดการการแลกเปลี่ยนเพื่อยืนยันว่า ใบรับรองใช้ OAuth มีอยู่บนเซิร์ฟเวอร์ Exchange อื่น ๆ:
รับ ExchangeCertificate (การรับการ AuthConfig) CurrentCertificateThumbprint
ถ้าใบรับรองมีอยู่บน Exchange เซิร์ฟเวอร์ส่งออกใบรับรองและอื่น ๆ แล้วนำเข้าแฟ้มนั้นไปยัง Exchange serverที่มีปัญหา
ถ้าใบรับรองไม่มีอยู่บนเซิร์ฟเวอร์ Exchange ทั้งหมดในองค์กร ให้ทำตามขั้นตอนเหล่านี้เพื่อสร้าง และปรับใช้ใบรับรองใช้ OAuth ใหม่ไปยังเซิร์ฟเวอร์ Exchange:
-
สร้างใบรับรองการใช้ OAuth ใหม่ โดยการเรียกใช้คำสั่งต่อไปนี้:
2048ใหม่-ExchangeCertificate - KeySize - PrivateKeyExportable $true - SubjectName " cn =ใบรับรองการรับรองความถูกต้องเซิร์ฟเวอร์ Microsoft Exchange " - FriendlyName DomainName "Microsoft Exchange รับรองความถูกต้องใบรับรองเซิร์ฟเวอร์" - "contoso.com"
หมายเหตุ เปลี่ยนค่าของพารามิเตอร์DomainNameในตัวอย่าง (contoso.com) ไปยังโดเมน SMTP ที่ใช้ในองค์กรของคุณ
-
ตั้งค่าการสร้างใบรับรองที่จะใช้สำหรับการรับรองความถูกต้องของเซิร์ฟเวอร์ ด้วยการเรียกใช้คำสั่งต่อไปนี้:
ชุด-AuthConfig - NewCertificateThumbprint <ThumbprintFromStep1> - NewCertificateEffectiveDate (รับ-วัน) ชุด AuthConfig – PublishCertificate ชุด-AuthConfig - ClearPreviousCertificate
-
เริ่มบริการ Microsoft Exchange บริการโฮสต์ใหม่
-
เรียกใช้คำสั่งIISResetเพื่อเริ่ม IIS ใหม่ หรือเรียกใช้คำสั่งต่อไปนี้ (ในโหมดผู้ดูแล) รีไซเคิลกลุ่ม OWA และ ECP APP อย่างใดอย่างหนึ่ง:
รีสตาร์ WebAppPool MSExchangeOWAAppPool
รีสตาร์ WebAppPool MSExchangeECPAppPoolหมายเหตุ ในสภาพแวดล้อมบางอย่าง อาจใช้เวลาหนึ่งชั่วโมงสำหรับใบรับรองการใช้ OAuth เพื่อเผยแพร่
สถานะ
Microsoft ยืนยันว่านี่เป็นปัญหาในผลิตภัณฑ์ของ Microsoft ซึ่งแสดงไว้ในส่วน "นำไปใช้กับ"
ข้อมูลอ้างอิง
เรียนรู้เกี่ยวกับ คำศัพท์เฉพาะทาง ที่ Microsoft ใช้เพื่ออธิบายการปรับปรุงซอฟต์แวร์