背景:
我有一个Windows服务,用于轮询Azure订阅日志(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登录,当前用户\个人证书存储区具有所需的证书。
有什么想法吗?
提前致谢。
编辑:密码提示图片:
答案 0 :(得分:1)
当我从创建证书的机器导出证书时,我看到了这个错误,在导出时,我选择以.cer
格式导入证书(即不导出私钥)。您可以尝试从pfx
格式的开发框中导出证书,然后将该文件复制到测试框中,然后通过选择文件并安装证书再次将其导入测试框中吗?
<强>更新强>
我能够重现这一点。导入证书时,请确保取消选中“启用强私钥保护”复选框,如下面的屏幕截图所示。
当我选中此复选框时,每次我使用此证书时,它都会提示我输入密码。现在我使用的是GUI应用程序,所以我可以看到那个盒子。在您的情况下,由于您通过Windows服务(非UI用户)使用证书,此框永远不会显示,您认为该服务已挂起。