0

背景:

我有一个轮询 Azure 订阅日志的 Windows 服务(API:http: //msdn.microsoft.com/en-us/library/windowsazure/gg715318.aspx

在我的本地开发机器上,该服务设置为以我的帐户登录。X509 证书是在 CurrentUser\Personal 下导入的,并且在我检查我拥有的证书存储的源代码中:

X509Store certStore = new X509Store(StoreName.My, StoreLocation.CurrentUser);

问题:

该服务在我的开发机器上运行良好,它可以从 API 检索数据。在测试机上我得到这个错误:

The remote server returned an error: (403) Forbidden.

该服务设置为以特定用户 dmz\aaseclg1 身份登录,并且当前用户\个人证书存储具有所需的证书。

有任何想法吗?

提前致谢。

编辑:密码提示的图像:

在此处输入图像描述

4

1 回答 1

1

当我从创建证书的机器导出证书时,我看到了这个错误,在导出时,我选择以.cer格式导入它(即不导出私钥)。您可以尝试从您的开发盒中以pfx格式导出证书,然后将文件复制到您的测试盒中,然后通过选择文件并安装证书将其再次导入您的测试盒中吗?

更新

我能够重现这一点。导入证书时,请确保您已取消选中“启用强私钥保护”复选框,如下面的屏幕截图所示。

在此处输入图像描述

当我选中此复选框时,每次我使用此证书时,它都会提示我输入密码。现在我正在使用一个 GUI 应用程序,所以我可以看到那个框。在您的情况下,由于您通过 Windows 服务(非 UI 事物)使用证书,因此此框永远不会显示,并且您认为该服务已挂起。

于 2013-09-25T02:51:27.453 回答