我正在将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标签),没有问题,所以我宁愿修复根本问题,而不是去做一个变通方法的漏洞和漂移来自官方消息来源。
我是如何遇到这个问题的:
commit 5e0c26f73cf5
,)ClickToBuildAzurePackage.cmd
脚本buildazure\Stage\ServiceConfiguration.cscfg
以放入连接字符串以指向真正的Azure存储帐户(与本地存储对比)。buildazure\Stage
中的文件部署到Azure
我们的本地构建系统:
问题:
是否有人成功部署到Azure?有任何想法如何解决这个问题?
答案 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的工作。我在写这篇文章之前成功地尝试了它;它没有重现你的问题。