PENDAHULUAN
Dasar komunikasi Windows (WCF) tidak memiliki fungsionalitas untuk mengirim pesan yang aman dan kemudian menerima respons yang tidak aman, atau untuk mengirim pesan yang tidak aman dan menerima respons yang aman. Hotfix yang dijelaskan di artikel ini menambahkan atribut enableUnsecuredResponse baru. Nilai default atribut enableUnsecuredResponse adalah palsu. Jika Anda menetapkan nilai dari atribut ini ke true, fitur baru berikut ini diaktifkan di WCF:
-
WCF klien dapat menerima respons yang tidak aman bahkan jika pesan keluar aman dengan menggunakan protokol Secure Socket Layer (SSL) untuk mendaftar badan pesan.
-
Layanan WCF dapat mengirimkan respons yang tidak aman yang memiliki tidak header keamanan SOAP amplop meskipun permintaan aman.
Catatan Atribut enableUnsecuredResponse hanya berlaku hanya untuk jenis CustomBinding .
Pemecahan masalah
Jika Anda menggunakan .NET Framework 3.0, instal hotfix yang dijelaskan di artikel berbasis Pengetahuan Microsoft berikut ini:
MEMPERBAIKI 967105 : hotfix yang memungkinkan WCF untuk mengirim pesan aman dan menerima respons tanpa jaminan, dan untuk mengirim pesan yang tidak aman dan menerima respons aman, tersedia untuk .NET Framework 3.0Jika Anda menggunakan .NET Framework 3.5 Paket Layanan 1 di Windows 7 atau Windows Server 2008 R2, instal hotfix yang dijelaskan di artikel berbasis Pengetahuan Microsoft berikut ini:
977420 pembatalan hotfix tersedia untuk memperbaiki masalah di dasar komunikasi Windows dalam .NET Framework 3.5 SP1 untuk Windows 7 dan Windows Server 2008 R2
Jika Anda menggunakan .NET Framework 3.5 Paket Layanan 1 pada sistem operasi lainnya, instal hotfix berikut ini untuk menyelesaikan masalah.
Sekarang tersedia hotfix yang didukung dari Microsoft. Namun, ini ditujukan untuk memperbaiki masalah yang dijelaskan di artikel ini. Terapkan hanya ke sistem yang mengalami masalah khusus ini. Perbaikan terbaru ini dapat menerima pengujian tambahan. Oleh karena itu, jika Anda tidak terlalu dipengaruhi oleh masalah ini, kami sarankan Anda menunggu paket layanan berikutnya yang berisi perbaikan terbaru ini.
Untuk segera menyelesaikan masalah ini, hubungi layanan dukungan pelanggan Microsoft untuk mendapatkan hotfix. Untuk daftar lengkap nomor telepon layanan dukungan pelanggan Microsoft dan informasi mengenai biaya dukungan, kunjungi situs Web Microsoft berikut ini:
http://support.microsoft.com/contactus/?ws=supportCatatan Dalam kasus tertentu, biaya yang biasanya diadakan untuk panggilan dukungan mungkin dibatalkan apabila profesional dukungan Microsoft menentukan bahwa pembaruan khusus akan memecahkan masalah Anda. Biaya dukungan biasa akan berlaku untuk pertanyaan dan masalah yang tidak termasuk pada pembaruan tertentu yang dimaksud dukungan tambahan.
Prasyarat
Untuk menerapkan hotfix ini, Anda harus memiliki .NET Framework 3.5 Paket Layanan 1.
Persyaratan menghidupkan ulang
Anda tidak harus me-restart komputer setelah menerapkan hotfix ini jika tidak ada contoh .NET Framework digunakan.
Informasi penggantian hotfix
Hotfix ini tidak menggantikan hotfix lainnya.
Informasi file
Versi bahasa Inggris dari hotfix ini memiliki atribut berkas (atau atribut berkas yang lebih baru) yang tercantum dalam tabel berikut. Tanggal dan waktu untuk berkas-berkas tersebut dicantumkan dalam Waktu Universal Terkoordinasi (UTC). Ketika Anda melihat informasi berkas, akan diubah ke waktu lokal. Untuk menemukan perbedaan antara waktu UTC dan waktu lokal, gunakan tab Zona Waktu di item Tanggal dan Waktu di Panel Kontrol.
Informasi berkas untuk semua versi x86 berbasis Windows Server 2003 dan Windows XP
Nama file |
Versi file |
Ukuran file |
Tanggal |
Waktu |
Platform |
---|---|---|---|---|---|
Servicemonikersupport.dll |
3.0.4506.4119 |
17,240 |
01-Jun-2009 |
22:56 |
x86 |
System.runtime.serialization.dll |
3.0.4506.4119 |
970,752 |
01-Jun-2009 |
22:56 |
x86 |
System.servicemodel.dll |
3.0.4506.4119 |
5,931,008 |
01-Jun-2009 |
22:56 |
x86 |
Informasi berkas untuk semua versi x64 berbasis Windows Server 2003 dan Windows XP
Nama file |
Versi file |
Ukuran file |
Tanggal |
Waktu |
Platform |
---|---|---|---|---|---|
Servicemonikersupport.dll |
3.0.4506.4119 |
19,304 |
01-Jun-2009 |
22:28 |
x64 |
System.runtime.serialization.dll |
3.0.4506.4119 |
847,872 |
01-Jun-2009 |
22:28 |
x64 |
System.servicemodel.dll |
3.0.4506.4119 |
5,267,456 |
01-Jun-2009 |
22:28 |
x64 |
Informasi berkas untuk semua versi x86 berbasis Windows Vista SP2 dan Windows Server 2008 SP2
Nama file |
Versi file |
Ukuran file |
Tanggal |
Waktu |
---|---|---|---|---|
Servicemonikersupport.dll |
3.0.4506.4120 |
17,240 |
10-Jun-2009 |
06:55 |
System.runtime.serialization.dll |
3.0.4506.4120 |
970,752 |
10-Jun-2009 |
06:55 |
System.servicemodel.dll |
3.0.4506.4120 |
5,935,104 |
10-Jun-2009 |
06:55 |
Informasi berkas untuk semua versi x64 berbasis Windows Vista SP2 dan Windows Server 2008 SP2
Nama file |
Versi file |
Ukuran file |
Tanggal |
Waktu |
Platform |
---|---|---|---|---|---|
Servicemonikersupport.dll |
3.0.4506.4120 |
19,288 |
10-Jun-2009 |
06:56 |
x64 |
System.runtime.serialization.dll |
3.0.4506.4120 |
847,872 |
10-Jun-2009 |
06:56 |
x64 |
System.servicemodel.dll |
3.0.4506.4120 |
5,271,552 |
10-Jun-2009 |
06:56 |
x64 |
Informasi berkas untuk semua versi berbasis Itanium Windows Server 2008 SP2
Nama file |
Versi file |
Ukuran file |
Tanggal |
Waktu |
Platform |
---|---|---|---|---|---|
Servicemonikersupport.dll |
3.0.4506.4120 |
33,640 |
10-Jun-2009 |
06:56 |
IA-64 |
System.runtime.serialization.dll |
3.0.4506.4120 |
847,872 |
10-Jun-2009 |
06:56 |
IA-64 |
System.servicemodel.dll |
3.0.4506.4120 |
5,271,552 |
10-Jun-2009 |
06:56 |
IA-64 |
Status
Microsoft telah memastikan bahwa ini merupakan masalah di dalam produk Microsoft sebagaimana tercantum di bagian "Berlaku untuk".
Informasi lebih lanjut
Menggunakan kode contoh berikut ini untuk menguji atribut enableUnsecuredResponse :
Layanan
BindingElementCollection serviceBec = new BindingElementCollection();
SecurityBindingElement serviceSbe = SecurityBindingElement.CreateUserNameForCertificateBindingElement();
serviceSbe.EnableUnsecuredResponse = true;
serviceBec.Add(serviceSbe);
serviceBec.Add(new TextMessageEncodingBindingElement());
serviceBec.Add(new HttpTransportBindingElement());
Binding serviceBinding = new CustomBinding(serviceBec);
ServiceHost serviceHost = new ServiceHost(typeof(RequestReply));
…
serviceHost.Open();
Klien
BindingElementCollection clientBec = new BindingElementCollection();
SecurityBindingElement clientSbe = SecurityBindingElement.CreateUserNameForCertificateBindingElement();
clientSbe.EnableUnsecuredResponse = true;
clientBec.Add(clientSbe);
clientBec.Add(new TextMessageEncodingBindingElement());
clientBec.Add(new HttpTransportBindingElement());
Binding clientBinding = new CustomBinding(clientBec);
IRequestReply channel = cf.CreateChannel();
try
{
channel.SendString("Hello");
cf.Close();
}