4

我创建了一个 MVC3 项目并附加了一个 Azure 云服务以部署到一个 Azure Web 角色。我为 PRODUCTION 和 TEST 创建了两个 .cscfg 文件。这两个服务具有不同的 SSL 证书和不同的指纹 - 这些证书在相应的 .cscfg 文件中设置。在我的角色中,我设置了一个 https 端点并为 SSL 证书名称选择了正确的配置设置。

问题 - Visual Studio 不会发布到 Azure 上的 Web 角色,除非所有 .cscfg 文件都包含完全相同的 SSL 指纹。如果我在 .cscfg 文件(用于生产和测试)中有不同的证书指纹,它拒绝发布说:

错误:证书:带有指纹的“SSLCert”:角色:XXXXX 尚未上传到云服务:XXXXX

如何设置配置以允许单独的 SSL 证书?

4

3 回答 3

2

我想说这是 Windows Azure SDK 的一个已知问题,目前正在处理中。我没有关于修复可用性的任何具体细节,也无法对此发表评论。

上面你已经有了一些手动发布包的解决方法,但是如果你仍然想在工具集中解决你的问题,你可以在构建步骤中转换 CSDEF/CSCFG 配置文件,如下所述:

http://blogs.msdn.com/b/philliphoff/archive/2012/07/02/transform-windows-azure-service-model-files-during-packaging.aspx

转换配置文件后,您仍然可以使用相同的构建/发布步骤,并且不需要手动发布。

于 2012-07-19T19:14:53.560 回答
2

我刚刚使用 Igorek 对我的问题的回答实现了这一点。不如 msbuild 转换强大,但更易于实现。

解决方案是创建一个与每个服务配置对应的 .csdef 文件。然后,在 Azure 项目的预构建步骤中,将正确的 .csdef 文件复制到主 .csdef 文件上。这些自定义 .csdef 文件可以添加到您的解决方案中,但您必须使用文本编辑器手动完成。

我的每个特定于配置的 .csdef 文件都包含我的测试和生产 SSL 证书,但端点定义设置为使用正确的配置文件。这是必需的,因为 Visual Studio 会抱怨 .cscfg 文件中引用的证书在 .csdef 文件中丢失。这意味着您必须将 SSL 证书上传到 Azure 门户上的测试和生产服务,但在部署完成后将使用正确的证书。

于 2012-07-19T21:40:41.470 回答
0

我使用的简单解决方案是在我的解决方案中创建两个单独的云项目。我把它们放在一个名为“手动部署”的文件夹中

当我想使用生产证书发布到生产环境时,我会发布在配置文件中具有正确设置的云项目。QA 也一样。我什至为本地开发测试做了一个单独的云项目。云项目很容易制作,您只需将实际的 webrole 项目与每个云项目相关联,您就可以开展业务了。

于 2012-11-07T19:50:30.737 回答