[英]publishing from Visual Studio with Azure SDK 1.7 no longer works - certificate/thumbprint error
我有一个长期的Azure云服务项目,用于从Studio将Web和辅助角色部署到Azure。 云服务定义和云配置文件包括有关已上载到云服务的证书的信息。 因此,在服务定义中:
<Certificates>
<Certificate name="cert" storeLocation="LocalMachine" storeName="My" />
<Certificate name="encryption" storeLocation="LocalMachine" storeName="My" />
</Certificates>
并在服务配置中:
<Certificates>
<Certificate name="cert" thumbprint="[hidden]" thumbprintAlgorithm="sha1" />
<Certificate name="encryption" thumbprint="[hidden]" thumbprintAlgorithm="sha1" />
</Certificates>
很长时间以来,我一直使用这些配置和证书发布到同一云服务,没有任何问题。
现在,我已经升级到Visual Studio 2010 sp1的Azure 1.7 SDK(2012年6月)。 升级我的云服务项目后[在“属性”中,单击“升级”],由于明显的证书错误,我不再能够部署:
1:25:28 PM-正在连接... 1:25:33 PM-错误:带有指纹的证书:'cert':角色:My.Web尚未上传到云服务:My Test NC。 下午1:25:33-错误:证书:带有指纹的“加密”:角色:My.Web尚未上传到云服务:My Test NC。
请注意,错误中根本没有列出任何指纹-为了安全起见,我在这里没有将其删除。
如果我编辑项目文件,并且除了将1.7更改为1.6以外,完全没有其他更改,那么Studio的部署再次可以完美地工作。
Visual Studio sp1和Azure 1.7似乎有一些问题,但是我还没有发现任何证据表明其他人也有类似的问题。
更新:我刚刚和Microsoft谈过,现在至少在复制步骤上很清楚:
由于一个人可能不想将生产证书存储在开发机器上(特别是因为一个人不希望开发机器具有解密加密的生产值的能力-例如,如果一个开发笔记本电脑丢失了,请考虑),因此请使用不同的证书在不同的环境中似乎符合标准的最佳做法。
因此,此时,Microsoft将考虑是否需要解决此问题。 同时,Azure 1.7 SDK的解决方法是:(1)不要使用Studio中的“发布”; (2)不要使用多种服务配置; 或(3)在所有环境中使用相同的证书(我个人不推荐)。
“答案”似乎是,当您在同一项目中拥有多个cscfg文件时,对同一证书名称使用不同的指纹(显然很可能会这样做),您将遇到此问题。
<Certificates>
<Certificate name="cert" thumbprint="[hidden]" thumbprintAlgorithm="sha1" />
<Certificate name="encryption" thumbprint="[hidden]" thumbprintAlgorithm="sha1" />
</Certificates>
因此,如果[hidden]的值在开发,测试和实时使用的cscfg文件上有所不同,则在尝试发布到任何一个(例如test)时,都会遇到您提到的错误。
如果您使用管理配置删除开发人员的cscfg文件并使用管理配置进行实时删除,然后尝试使用其余的测试配置文件进行发布,则发布将起作用(至少对我而言)。
这似乎是一个缺陷。
当发现此问题时,我们发现了另一种情况。 在VS2012.2中,证书的指纹为小写字母,但似乎Azure管理API要求使用大写字母。 这是Management Portal / API方面的错误,因为在任何情况下都可以使用指纹-案例本身没有信息内容,因此执行检查的一方应与情况无关地进行检查(我相信Azure Fabric Controller )。
我正在上传显示此图片(点击此处查看完整分辨率图片 )
肯特,除了提供的解决方法外,您还可以在构建步骤中转换配置文件。 菲尔·霍夫(Phil Hoff)在http://blogs.msdn.com/b/philliphoff/archive/2012/07/02/transform-windows-azure-service-model-files-during-packaging中讨论了如何执行此操作。 aspx 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.