次の例外が発生します。
Message=The X.509 certificate CN=************ は信頼できるユーザー ストアにありません。X.509 証明書 CN=******** チェーンの構築に失敗しました。使用された証明書には、検証できない信頼チェーンがあります。証明書を置き換えるか、certificateValidationMode を変更してください。証明書の署名を検証できません。
Dev Box から別のコンピューターの Service Bus に接続しようとしています
これが私が使用しているコンソールアプリのコードです。
ServicePointManager.ServerCertificateValidationCallback =
new RemoteCertificateValidationCallback(ValidateServerCertificate);
ServicePointManager.CheckCertificateRevocationList = false;
NamespaceManager namespaceManager = NamespaceManager.Create();
MessagingFactory messagingFactory = MessagingFactory.Create();
if (namespaceManager.QueueExists(QueueName))
{
namespaceManager.DeleteQueue(QueueName);
}
namespaceManager.CreateQueue(QueueName);
string QueueName = "ServiceBusQueueSample";
QueueClient myQueueClient = messagingFactory.CreateQueueClient(QueueName);
BrokeredMessage sendMessage = new BrokeredMessage("Hello World !");
myQueueClient.Send(sendMessage); <---- !!!Exception!!!
Get-SBAutoGeneratedCA AutoGeneratedCA.cer AutoGeneratedCA.cr1 を使用して、Service Bus サーバーから証明書をエクスポートしました。
次に、デフォルト設定を使用して両方のファイルを開発ボックスにインポートしました。
次の項目を app.config に追加しました。
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior >
<clientCredentials>
<serviceCertificate>
<authentication certificateValidationMode="None"
revocationMode="NoCheck" />
</serviceCertificate>
</clientCredentials>
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
<microsoft.identityModel>
<service>
<certificateValidation certificateValidationMode="None" />
</service>
</microsoft.identityModel>
認証に成功し、キューが存在するかどうかを確認して削除し、新しいキューを作成できます。
解決策を探している ときに、証明書失効リストもインポートしたため、失効サーバーに問題があったことを示唆しているこれを見つけました。これが私の問題であることはわかりません
私もこれを見つけました:これはこのブログ投稿にリンクされています:私は提案に従いましたが成功しませんでした。
このブログ投稿:
revocationMode="NoCheck" を設定してもこの問題には影響がなく、彼の解決策は証明書失効リストを偽装することでした。
このブログ投稿: CertificateValidationMode を無効にするエンドポイントの動作を追加したことを提案しましたが、それでもエラーが発生します。
注: 開発マシンで Service Bus をホストすると、すべてが機能します。
私が試したことのない提案はありますか?