Ken*_*ill 8 azure visual-studio-2010
我有一个长期的Azure Cloud Service项目,我用它来从Studio将Web角色和辅助角色部署到Azure.云服务定义和云配置文件包括有关已上载到云服务的证书的信息.所以,在服务定义中:
<Certificates>
<Certificate name="cert" storeLocation="LocalMachine" storeName="My" />
<Certificate name="encryption" storeLocation="LocalMachine" storeName="My" />
</Certificates>
Run Code Online (Sandbox Code Playgroud)
并在服务配置中:
<Certificates>
<Certificate name="cert" thumbprint="[hidden]" thumbprintAlgorithm="sha1" />
<Certificate name="encryption" thumbprint="[hidden]" thumbprintAlgorithm="sha1" />
</Certificates>
Run Code Online (Sandbox Code Playgroud)
我已经将这些配置和证书发布到同一个云服务很长很长时间没有问题.
现在,我刚刚升级到Visual Studio 2010 sp1的Azure 1.7 SDK(2012年6月).一旦我升级我的云服务项目[在属性中,单击"升级"],由于明显的证书错误,我无法再部署:
1:25:28 PM - 正在连接... 1:25:33 PM - 错误:证书:带有指纹的'cert':用于角色:My.Web尚未上传到云服务:我的测试NC.1:25:33 PM - 错误:证书:使用Thumbprint进行'加密':对于角色:My.Web尚未上传到云服务:我的测试NC.
请注意,错误中根本没有列出Thumbprint - 出于安全考虑,我没有将其删除.
如果我编辑项目文件并且除了将1.7更改为1.6之外没有任何其他更改,那么Studio的部署工作将再次完美.
似乎Visual Studio sp1和Azure 1.7存在一些问题,但我没有发现任何其他人遇到类似问题的证据.
更新:我刚刚与微软谈过,我们现在至少清楚了解复制步骤:
因为一个人可能不希望在开发机器上存储生产证书(特别是因为人们不希望开发机器能够解密加密的生产值 - 例如,考虑一下开发笔记本电脑是否丢失),不同的证书在不同的环境中似乎符合标准的最佳实践.
因此,在这一点上,微软将考虑这是否需要修复.同时,Azure 1.7 SDK的变通方法是:(1)不要使用Studio中的"发布"; (2)不要使用多种服务配置; 或(3)在所有环境中使用相同的证书(非我个人推荐).
小智 1
“答案”似乎是,当您在同一项目中有多个 cscfg 文件时,对同一证书名称使用不同的指纹(显然很可能会这样做),您将遇到此问题。
<Certificates>
<Certificate name="cert" thumbprint="[hidden]" thumbprintAlgorithm="sha1" />
<Certificate name="encryption" thumbprint="[hidden]" thumbprintAlgorithm="sha1" />
</Certificates>
Run Code Online (Sandbox Code Playgroud)
因此,如果 [hidden] 的值在开发、测试和实时的 cscfg 文件上有所不同,那么当您尝试发布到其中任何一个(例如测试)时,您将遇到您提到的错误。
如果您使用管理配置删除开发和实时的 cscfg 文件并删除,然后尝试使用剩余的测试配置文件进行发布,则发布将起作用(至少对我而言)。
这看起来像是一个缺陷。
| 归档时间: |
|
| 查看次数: |
1496 次 |
| 最近记录: |