无法部署Orchard Azure项目 - YSOD新鲜源

时间:2013-08-14 20:10:16

标签: azure orchardcms

我正在将Orchard部署到Azure云服务(webrole),而不对官方稳定版本进行任何代码更改。但是,当我导航到新部署的Orchard云服务(webrole)时,我看到一个Could not load file or assembly 'Microsoft.WindowsAzure.ServiceRuntime, Version=1.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified的YSOD。

作为一种解决方法,如果我启用Local Copy = True(即修改源代码),那么这个特定的YSOD会被msshrtmi的另一个替换。但更重要的是,我能够部署预先构建的下载的Orchard Azure(1.7,预先构建相同的GIT src标签),没有问题,所以我宁愿修复根本问题,而不是去做一个变通方法的漏洞和漂移来自官方消息来源。

我是如何遇到这个问题的:

  1. 从GIT(http://orchard.codeplex.com/SourceControl/latest,我使用commit 5e0c26f73cf5,)
  2. 下载源代码
  3. 运行ClickToBuildAzurePackage.cmd脚本
  4. 编辑buildazure\Stage\ServiceConfiguration.cscfg以放入连接字符串以指向真正的Azure存储帐户(与本地存储对比)。
  5. 通过windowsazure.com门户
  6. buildazure\Stage中的文件部署到Azure
  7. 导航到网站(例如:http://OrchardTest.cloudapp.net
  8. 享受黄屏死亡:(
  9. 我们的本地构建系统:

    • Windows 8,x64
    • VS2012.3
    • Azure SDK 1.7,1.8,2.0

    问题:

    是否有人成功部署到Azure?有任何想法如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

Azure Service Runtime上永远不需要CopyLocal True。这将自动包含在由Cloud Services项目(在本例中为Orchard.Azure.CloudService)定义的包中。实际上,我可以想象如果bin包含的Service Runtime版本不同于构建Azure包的版本,则CopyLocal True可能会导致问题。

Orchard Azure使用Azure 2.0库。它表明您已安装2.0 SDK,因为您可以编译Orchard.Azure.CloudService项目来创建包。对于每个版本的Azure工具,Cloud Service项目都有不同的项目指南,因此如果没有v2.0 SDK,它将是一个未知的项目类型。但是,随着您的Orchard网站获取ServiceRuntime v1.7,您的本地环境似乎有些不妥,因为它仍然应该与v2.0一致。

当您打开Orchard.Azure.sln时,请检查Orchard.Azure.Web项目中的Microsoft.WindowsAzure.ServiceRuntime引用上的属性。 Visual Studio在该引用上列出的版本是什么?它应该是2.0.0。如果没有,我最好的建议是重新安装2.0库。

部署步骤,因为您已经定义了没有YSOD的工作。我在写这篇文章之前成功地尝试了它;它没有重现你的问题。