自己署名 SSL 証明書で保護された Web サービスを呼び出す WCF-BasicHttp 送信ポートがあります。これはすべて、適切な証明書にアクセスできないテスト環境にデプロイされています。
BizTalk は、署名されていない証明書を正しく信頼できないため、"SSL/TLS セキュア チャネルの信頼関係を確立できませんでした" というエラーを返します。BizTalk または送信ポートを構成して証明書の検証を無効にする方法はありますか?
コード サンプルを見たことがありますが、コーディングするものが何もないため、機能しません。BizTalk 送信ポートは純粋な構成です。
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
...
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(OnValidationCallback);
...
public static bool OnValidationCallback(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors errors)
{
return true;
}
checkCertificateName="false" を指定して BtsNtSvc.exe.config 構成ファイルを更新することも検討しましたが、その設定はメッセージ レベルの証明書の検証にのみ影響し、トランスポートには影響しないため、機能しません。
<system.net>
<settings>
<servicePointManager checkCertificateName="false" checkCertificateRevocationList="false"/>
</settings>
</system.net>
Dijkgraaf の応答により、biztalk 送信サービスの適切なストアに証明書をインポートし、問題を部分的に解決しました。約 65000 件のメッセージが一時停止されています。バッチで 200 個を再開すると、50% 以上が Https Web サービスに送信されますが、残りは同じエラーでエラーになります。最終的に BizTalk は再試行し、メッセージは通過します。この時点でエラーが発生する原因は不明です-高スループット、高メモリ消費など。