Menyelesaikan isu perhubungan kepercayaan SSL/TLS dalam panggilan perkhidmatan web C# SOAP
Adalah mengecewakan untuk menghadapi ralat "Tidak dapat mewujudkan hubungan kepercayaan untuk saluran selamat SSL/TLS" semasa memanggil perkhidmatan web C#. Isu amanah ini biasanya berlaku apabila menggunakan perkhidmatan web yang dilindungi SSL dan menunjukkan isu dengan sijil SSL pelayan.
Semak konfigurasi pelayan
Semak konfigurasi pelayan dahulu. Pastikan syarat berikut dipenuhi:
Potensi punca ralat
Jika pelayan dikonfigurasikan dengan betul, pertimbangkan kemungkinan punca berikut:
Lumpuhkan pengesahan sijil
Sebagai penyelesaian sementara, melumpuhkan pengesahan sijil boleh membenarkan panggilan perkhidmatan web diteruskan. Ini tidak disyorkan untuk persekitaran pengeluaran, tetapi mungkin berguna untuk tujuan ujian. Coretan kod berikut menyediakan cara untuk melumpuhkan pengesahan sijil:
<code class="language-csharp">// Lambda表达式,接受任何证书 System.Net.ServicePointManager.ServerCertificateValidationCallback = ((sender, certificate, chain, sslPolicyErrors) => true); // Lambda表达式,信任发送者 System.Net.ServicePointManager.ServerCertificateValidationCallback = ((sender, cert, chain, errors) => cert.Subject.Contains("YourServerName")); // 函数回调,用于验证证书 ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(ValidateRemoteCertificate);</code>
Contoh pengesahan fungsi:
<code class="language-csharp">private static bool ValidateRemoteCertificate(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors policyErrors) { bool result = cert.Subject.Contains("YourServerName"); return result; }</code>
Coretan kod ini membenarkan perkhidmatan web mengabaikan isu sijil dan mewujudkan sambungan. Walau bagaimanapun, adalah penting untuk menyiasat secara menyeluruh punca isu amanah dan menyelesaikannya dengan sewajarnya untuk memastikan kebolehpercayaan komunikasi perkhidmatan web pada masa hadapan.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat 'Tidak dapat mewujudkan hubungan amanah untuk saluran selamat SSL/TLS' dalam Panggilan Perkhidmatan Web C# SOAP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!