อาการ
ลองทำตามสถานการณ์ต่อไปนี้:
- คุณสร้างบริการ Windows Communication Foundation (WCF) ที่ถูกโฮสต์ในบริการข้อมูลอินเทอร์เน็ต (IIS)
- คุณใช้คลาส WebScriptEnablingBehavior ในบริการ WCF
- คุณกําหนดค่าบริการ WCF ใช้ใบรับรองไคลเอ็นต์สําหรับการรับรองความถูกต้อง Secure Sockets Layer (SSL) เมื่อต้องการทําเช่นนี้ ให้คุณตั้งค่าคุณสมบัติ ClientCredentialType ในไฟล์ Web.config เป็น ใบรับรอง
ในสถานการณ์นี้ เมื่อคุณเรียกใช้บริการ WCF ข้อยกเว้น System.NotSupportedException จะเกิดขึ้น และคุณได้รับข้อความแสดงข้อผิดพลาดที่มีลักษณะต่อไปนี้:
หมายเหตุ
การตั้งค่า SSL สําหรับบริการ 'ไม่มี' ไม่ตรงกับการตั้งค่าของ IIS 'Ssl, SslNegotiateCert, SslRequireCert, SslMapCert, Ssl128'
สาเหตุ
ปัญหานี้เกิดขึ้นเนื่องจากคุณสมบัติบางอย่างของอินสแตนซ์ HttpTransportBindingElement จะไม่ถูกคัดลอกไปยังจุดสิ้นสุดพร็อกซี Javascript ที่สร้างขึ้นโดยอัตโนมัติ
การแก้ปัญหา
โปรแกรมแก้ไขด่วนที่ได้รับการสนับสนุนจาก Microsoft พร้อมใช้งานแล้ว อย่างไรก็ตาม มีไว้เพื่อแก้ไขปัญหาที่อธิบายไว้ในบทความนี้เท่านั้น นําไปใช้กับระบบที่พบปัญหานี้โดยเฉพาะเท่านั้น
เมื่อต้องการแก้ไขปัญหานี้ ให้ติดต่อฝ่ายบริการสนับสนุนลูกค้าของ Microsoft เพื่อขอรับโปรแกรมแก้ไขด่วน สําหรับรายชื่อทั้งหมดของหมายเลขโทรศัพท์ของฝ่ายบริการสนับสนุนลูกค้าของ Microsoft และข้อมูลเกี่ยวกับค่าใช้จ่ายในการสนับสนุน
http://support.microsoft.com/contactus/?ws=support หมายเหตุ ในกรณีพิเศษ อาจมีการยกเลิกค่าใช้จ่ายสําหรับการโทรติดต่อฝ่ายสนับสนุนตามปกติ หากผู้เชี่ยวชาญฝ่ายสนับสนุนของ Microsoft ระบุว่าการอัปเดตเฉพาะจะแก้ไขปัญหาของคุณได้ ค่าใช้จ่ายในการสนับสนุนปกติจะใช้กับคําถามและปัญหาการสนับสนุนเพิ่มเติมที่ไม่มีคุณสมบัติสําหรับการอัปเดตเฉพาะที่สงสัย
ข้อกำหนดเบื้องต้น
คุณต้องติดตั้ง .NET Framework 3.5 Service Pack 1 (SP1) เพื่อใช้โปรแกรมแก้ไขด่วนนี้
ข้อกำหนดในการรีสตาร์ต
คุณไม่จําเป็นต้องเริ่มระบบของคอมพิวเตอร์ใหม่หลังจากที่คุณติดตั้งโปรแกรมแก้ไขด่วน
ข้อมูลการแทนที่โปรแกรมแก้ไขด่วน
โปรแกรมแก้ไขด่วนนี้ไม่มีการแทนที่โปรแกรมแก้ไขด่วนอื่นๆ
โปรแกรมแก้ไขด่วนรุ่นภาษาอังกฤษนี้มีแอตทริบิวต์ของแฟ้ม (หรือแอตทริบิวต์ของแฟ้มที่ใหม่กว่า) ซึ่งแสดงอยู่ในตารางต่อไปนี้ วันที่และเวลาสำหรับไฟล์เหล่านี้แสดงตามเวลามาตรฐานสากล (UTC) เมื่อคุณดูข้อมูลไฟล์ ข้อมูลจะถูกแปลงเป็นเวลาท้องถิ่น เมื่อต้องการค้นหาความแตกต่างระหว่างเวลา UTC และเวลาท้องถิ่น ให้ใช้แท็บ โซนเวลา ในรายการ วันที่และเวลา ใน แผงควบคุม
เวอร์ชัน x86 สําหรับ Windows Server 2000, Windows Server 2003 และ Windows XP
| ชื่อไฟล์ | เวอร์ชันของไฟล์ | ขนาดไฟล์ | วันที่ | เวลา | แพลตฟอร์ม |
|---|---|---|---|---|---|
| System.servicemodel.web.dll | 3.5.594.4152 | 569,344 | 22-ก.ค. 2552 | 01:51 | x86 |
เวอร์ชัน x64 สําหรับ Windows Server 2000, Windows Server 2003 และ Windows XP
| ชื่อไฟล์ | เวอร์ชันของไฟล์ | ขนาดไฟล์ | วันที่ | เวลา | แพลตฟอร์ม |
|---|---|---|---|---|---|
| System.servicemodel.web.dll | 3.5.594.4152 | 491,520 | 22-ก.ค. 2552 | 02:13 | x64 |
เวอร์ชันที่ใช้ Itanium สําหรับ Windows Server 2000, Windows Server 2003 และ Windows XP
| ชื่อไฟล์ | เวอร์ชันของไฟล์ | ขนาดไฟล์ | วันที่ | เวลา | แพลตฟอร์ม |
|---|---|---|---|---|---|
| System.servicemodel.web.dll | 3.5.594.4152 | 491,520 | 22-ก.ค. 2552 | 02:26 | IA-64 |
สถานะ
Microsoft ได้ยืนยันว่านี่เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ที่แสดงไว้ในส่วน "นำไปใช้กับ"
วิธีแก้ไขปัญหาชั่วคราว
เมื่อต้องการแก้ไขปัญหานี้ชั่วคราว ให้โฮสต์บริการ WCF ด้วยตนเองแทนการโฮสต์บริการใน IIS
ข้อมูลเพิ่มเติม
ข้อมูลบันทึกข้อมูลกองซ้อน
System.ServiceModel.dll!System.ServiceModel.Channels.HttpsChannelListener.ApplyHostedContext(System.ServiceModel.Activation.VirtualPathExtension virtualPathExtension, bool isMetadataListener) + 0x1b7 bytes
System.ServiceModel.dll!System.ServiceModel.Channels.HttpsTransportBindingElement.BuildChannelListener<System.__Canon>(System.ServiceModel.Channels.BindingContext context) + 0x69 bytes
System.ServiceModel.dll!System.ServiceModel.Channels.BindingContext.BuildInnerChannelListener<System.__Canon>() + 0x5f bytes
System.ServiceModel.dll!System.ServiceModel.Channels.MessageEncodingBindingElement.InternalBuildChannelListener<System.__Canon>(System.ServiceModel.Channels.BindingContext context) + 0x66 bytes
System.ServiceModel.Web.dll!System.ServiceModel.Channels.WebScriptMetadataMessageEncodingBindingElement.BuildChannelListener<System.__Canon>(System.ServiceModel.Channels.BindingContext context) + 0x4b bytes
System.ServiceModel.dll!System.ServiceModel.Channels.BindingContext.BuildInnerChannelListener<System.__Canon>() + 0x5f bytes
System.ServiceModel.dll!System.ServiceModel.Channels.Binding.BuildChannelListener<System.__Canon>(System.Uri listenUriBaseAddress, string listenUriRelativeAddress, System.ServiceModel.Description.ListenUriMode listenUriMode, System.ServiceModel.Channels.BindingParameterCollection parameters) + 0xa6 bytes
System.ServiceModel.dll!System.ServiceModel.Channels.Binding.BuildChannelListener<System.__Canon>(System.Uri listenUriBaseAddress, System.ServiceModel.Channels.BindingParameterCollection parameters) + 0x7c bytes
System.ServiceModel.Web.dll!System.ServiceModel.Description.WebScriptEnablingBehavior.AddMetadataEndpoint(System.ServiceModel.Description.ServiceEndpoint endpoint, System.ServiceModel.Dispatcher.EndpointDispatcher endpointDispatcher, bool debugMode) + 0x698 bytes
System.ServiceModel.Web.dll!System.ServiceModel.Description.WebScriptEnablingBehavior.ApplyDispatchBehavior(System.ServiceModel.Description.ServiceEndpoint endpoint, System.ServiceModel.Dispatcher.EndpointDispatcher endpointDispatcher) + 0x60 bytes