4

为 Windows Server使用服务总线

我得到以下异常。

Message=X.509 证书 CN=*********** 不在受信任的人员存储中。X.509 证书 CN=********** 建链失败。使用的证书具有无法验证的信任链。更换证书或更改 certificateValidationMode。无法验证证书的签名。

我正在尝试从我的 Dev Box 连接到另一台计算机上的服务总线

这是我正在使用的控制台应用程序的代码。

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

然后,我使用默认设置将这两个文件导入到我的开发框中。

我已将以下项目添加到我的 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" 对此问题没有影响,他的解决方案是欺骗证书吊销列表

此博客文章:建议添加端点行为以禁用证书验证模式,我做到了,但我仍然收到错误。

注意:当我在我的开发机器上托管服务总线时,一切正常。

有什么我没有尝试过的建议吗?

4

1 回答 1

4

原来我没有正确导入证书......

我按照这些说明进行操作,一切正常。

http://msdn.microsoft.com/en-us/library/windowsazure/jj192993(v=azure.10).aspx

我猜右键单击并安装证书将它们放在错误的位置。

于 2012-10-25T16:14:00.107 回答