อาการ
พิจารณาสถานการณ์สมมติต่อไปนี้:
-
คุณสร้างการบริการของ Windows สื่อสารพื้นฐาน (WCF) ที่โฮสต์ใน Internet Information Services (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 และข้อมูลเกี่ยวกับค่าใช้จ่ายในการสนับสนุน โปรดเยี่ยมชมเว็บไซต์ต่อไปนี้ของ Microsoft:http://support.microsoft.com/contactus/?ws=supportหมายเหตุ ในกรณีพิเศษ ค่าบริการที่เรียกเก็บตามปกติเมื่อโทรติดต่อฝ่ายสนับสนุนอาจจะยกเลิกได้หาก Microsoft Support Professional ตัดสินว่าโปรแกรมปรับปรุงที่เฉพาะเจาะจงจะแก้ไขปัญหาของคุณได้ ค่าใช้จ่ายในการสนับสนุนตามปกติจะใช้กับคำถามและปัญหาในการสนับสนุนเพิ่มเติมซึ่งไม่สอดคล้องตามเกณฑ์สำหรับโปรแกรมปรับปรุงเฉพาะที่เกี่ยวข้อง
ข้อกำหนดเบื้องต้น
คุณต้องมีการ.NET Framework 3.5 Service Pack 1 (SP1 ติดตั้งไว้เพื่อใช้โปรแกรมแก้ไขด่วนนี้)
ข้อกำหนดการรีสตาร์ท
คุณไม่ต้องรีสตาร์ทเครื่องคอมพิวเตอร์หลังจากที่คุณติดตั้งโปรแกรมแก้ไขด่วน
ข้อมูลการแทนที่โปรแกรมแก้ไขด่วน
โปรแกรมแก้ไขด่วนนี้ไม่ได้แทนโปรแกรมแก้ไขด่วนอื่น ๆ
เวอร์ชันภาษาอังกฤษของโปรแกรมแก้ไขด่วนนี้มีแอตทริบิวต์ของแฟ้ม (หรือแอตทริบิวต์ของแฟ้มที่ใหม่กว่านี้) ซึ่งแสดงรายการไว้ในตารางต่อไปนี้ วันที่และเวลาสำหรับแฟ้มเหล่านี้จะแสดงรายการไว้ในรูปแบบเวลามาตรฐานสากล (UTC) เมื่อคุณดูข้อมูลแฟ้ม ระบบจะแปลงข้อมูลนี้เป็นเวลาท้องถิ่น เมื่อต้องการค้นหาความแตกต่างระหว่างเวลา UTC กับเวลาท้องถิ่น ใช้แท็บ โซนเวลา ในรายการ วันที่และเวลา ในแผงควบคุมรุ่นที่ใช้ x86 สำหรับเซิร์ฟเวอร์ Windows 2000, Windows Server 2003 และ Windows XP
ชื่อแฟ้ม |
รุ่นของแฟ้ม |
ขนาดของแฟ้ม |
วันที่ |
เวลา |
แพลตฟอร์ม |
---|---|---|---|---|---|
System.servicemodel.web.dll |
3.5.594.4152 |
569,344 |
22-Jul-2009 |
01:51 |
x86 |
รุ่นที่ใช้ x64 สำหรับเซิร์ฟเวอร์ Windows 2000, Windows Server 2003 และ Windows XP
ชื่อแฟ้ม |
รุ่นของแฟ้ม |
ขนาดของแฟ้ม |
วันที่ |
เวลา |
แพลตฟอร์ม |
---|---|---|---|---|---|
System.servicemodel.web.dll |
3.5.594.4152 |
491,520 |
22-Jul-2009 |
02:13 |
x64 |
รุ่นที่ใช้ Itanium สำหรับเซิร์ฟเวอร์ Windows 2000, Windows Server 2003 และ Windows XP
ชื่อแฟ้ม |
รุ่นของแฟ้ม |
ขนาดของแฟ้ม |
วันที่ |
เวลา |
แพลตฟอร์ม |
---|---|---|---|---|---|
System.servicemodel.web.dll |
3.5.594.4152 |
491,520 |
22-Jul-2009 |
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