อาการ
หลัง จากที่คุณติดตั้งการปรับรุ่นเป็น 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 ใช้เพื่ออธิบายการปรับปรุงซอฟต์แวร์