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



我将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的另一个YSOD取代。但更重要的是,我能够部署预先构建的下载的Orchard Azure(1.7,基于相同的GIT src标签预先构建),没有任何问题,所以我宁愿解决根本问题,也不愿陷入变通办法的兔子洞,远离官方来源。

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

  1. 从GIT下载源(http://orchard.codeplex.com/SourceControl/latest,我使用了commit 5e0c26f73cf5,)
  2. 运行ClickToBuildAzurePackage.cmd脚本
  3. 编辑buildazureStageServiceConfiguration.cscfg以放入连接字符串,指向真实的Azure存储帐户(与本地存储相比)
  4. 通过windowsazure.com门户将buildazureStage中的两个文件部署到Azure
  5. 导航到站点(例如:http://OrchardTest.cloudapp.net)
  6. 享受死亡的黄色屏幕:(

我们的本地构建系统:

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

问题:

是否有人成功部署到Azure?有什么想法可以解决这个问题吗?

在Azure服务运行时上永远不应该需要CopyLocal True。它会自动包含在包中,由您的云服务项目(在本例中为Orchard.Azure.CloudService)定义。实际上,我可以想象,如果bin包含与Azure包构建时不同版本的服务运行时,CopyLocal True可能会导致问题。

Orchard Azure使用Azure 2.0库。它显示您已经安装了2.0 SDK,因为您可以编译Orchard.Zure.CloudService项目来制作一个包。云服务项目对每个版本的Azure工具都有不同的项目指南,因此如果没有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的情况下工作得很好。就在写这篇文章之前,我成功地尝试了它;它没有复制你的问题。

最新更新