我按照此处的教程设置Azure Scheduler: http://fabriccontroller.net/blog/posts/a-complete-overview-to-get-started-with-the-windows-azure-scheduler/
我想在Azure网站上运行我的应用程序,但它阻止我创建我的X509Certificate。
我找到了这篇文章:http://blog.tylerdoerksen.com/2013/08/23/pfx-certificate-files-and-windows-azure-websites/ 这指出了问题:
事实证明,当您加载证书时,系统将使用本地目录来存储密钥(??) 密钥的默认位置是本地用户配置文件下的,Windows Azure网站没有本地用户配置文件目录。“
所以按照他的建议并添加以下标志:“X509KeyStorageFlags.MachineKeySet”我可以逃脱:
CryptographicException:系统找不到指定的文件
但我现在得到:
CryptographicException:拒绝访问。
真的没有办法从AzureWebsite使用SDK吗?!如果我被迫使用WebRole而不是Azure网站,它会破坏Azure Scheduler的很多吸引力。
在这个帖子中:http://social.msdn.microsoft.com/Forums/windowsazure/en-US/cfe06e73-53e1-4030-b82d-53200be37647/load-privately-created-p12-cert-from-azureblob-and-have-it-be-trusted 看起来好像他们在Azure网站上成功创建了一个X509Certificate,那么当我尝试时,我会抛出“拒绝访问”的不同之处?
答案 0 :(得分:2)
问题在于使用PublishSettings文件中的ManagementCertificate字符串...我使用VisualStudio控制台在本地计算机上创建了自签名证书,并导出了'.cer'和'.pfx'。
将自签名.cer上传到我的Azure /设置/管理证书中 将.pfx与我的解决方案捆绑在一起并发布到Azure网站
然后使用以下代码创建证书:
var certificate = new X509Certificate2(
HttpContext.Current.Server.MapPath("~/<filename>.pfx"), "<password>", X509KeyStorageFlags.MachineKeySet);