专家,
有没有人在Azure中成功构建和部署Orchard CMS(1.1及以上版本)?
我尝试按照此处的建议构建源代码(从Codeplex repo中提取):http://www.orchardproject.net/docs/Deploying-Orchard-to-Windows-Azure.ashx但仍然失败。如果您看到该文章的评论,您会看到一些人在使用ClickToBuildAzurePackage.cmd时遇到同样的问题。它总是失败!!它根本不起作用!
接下来,我下载了源代码包(Orchard.Web.1.2.41.zip)并尝试打开Orchard.Azure解决方案,构建并发布它(配置了远程桌面连接)。在发布之前,我还在ServiceConfiguration.cscfg文件中放入了正确的DataConnectionString。它给了我一个黄色的死亡屏幕,上面写着这条消息:
没有一个构造函数找到策略'Autofac.Core.Activators.Reflection.BindingFlagsConstructorFinder'
接下来,我尝试仅部署Azure软件包(没有源代码,Orchard.Azure.1.2.41.zip)。这一次,我可以得到安装屏幕,但是在安装完成后,它给了我另一个黄色的死亡屏幕,上面有几条错误消息,基本上提醒我对媒体,主题,模块和其他一些文件夹给予适当的许可...... 。如果我甚至无法为Azure设置远程桌面连接,如何如上所述呢?
我放弃了这一点......我开始认为Orchard CMS(1.1及以上版本)还没有为Azure做好准备。我可以在Azure中运行1.0.2版本并运行(直接部署Azure-ready软件包,我没有构建源代码)。
任何人都可以分享他们在此问题上的经验以及让Orchard CMS(1.1及以上版本)在Azure中顺利运行的分步指南吗?我是否可以知道我们是否也可以在Azure中为Orchard CMS设置2个实例?为实现这一目标,我需要考虑/做些什么?
谢谢!
答案 0 :(得分:4)
自2012年6月起,还可以在 Windows Azure网站上轻松托管Orchard。
以下是如何引导:How to setup Orchard CMS on Windows Azure Web Sites with a Windows Azure SQL Database。
这是一种替代方法,在原始问题时尚不存在,但对于希望在Windows Azure上轻松部署Orchard CMS的未来读者可能仍然感兴趣。
答案 1 :(得分:1)
我自己没有这样做。
但我已经阅读了一些关于将Orchard部署到Azure的博客文章 - 例如见http://litemedia.info/automate-deploy-of-your-orchard-cms-to-azure - 所以我相信可以做到。
在死亡问题的特定黄色屏幕上 - 确保您已使用NuGet解析AutoFac依赖关系 - 请参阅http://litemedia.info/deploy-orchard-cms-to-azure
答案 2 :(得分:1)
我做了大约十几次没有问题。关于ClickTobuild,你是从Visual Studio命令提示符那样做的吗?
答案 3 :(得分:1)
我没有让ClickToBuildToAcure.cmd脚本工作,这就是为什么我写了my own one,Stuart帮助链接到。我的博客http://litemedia.info正在Azure上运行,这些博客文章描述了我是如何做到的。
一些指针
与运行本地相比,我的Global.asax.cs在Azure上看起来有点不同。
public class AzureApplication : HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
}
protected void Application_Start()
{
CloudStorageAccount.SetConfigurationSettingPublisher(
(configName, configSetter) =>
configSetter(RoleEnvironment.GetConfigurationSettingValue(configName))
);
// For information on handling configuration changes
// see the MSDN topic at http://go.microsoft.com/fwlink/?LinkId=166357.
RoleEnvironment.Changing += (sender, e) =>
{
// If a configuration setting is changing
if (e.Changes.Any(change => change is RoleEnvironmentConfigurationSettingChange))
{
// Set e.Cancel to true to restart this role instance
e.Cancel = true;
}
};
RegisterRoutes(RouteTable.Routes);
Starter.LaunchStartupThread(MvcSingletons);
}
protected void Application_BeginRequest()
{
Context.Items["originalHttpContext"] = Context;
Starter.OnBeginRequest(Context, MvcSingletons);
}
protected void Application_EndRequest()
{
Starter.OnEndRequest();
}
static void MvcSingletons(ContainerBuilder builder)
{
builder.Register(ctx => RouteTable.Routes).SingleInstance();
builder.Register(ctx => ModelBinders.Binders).SingleInstance();
builder.Register(ctx => ViewEngines.Engines).SingleInstance();
}
}
我在/ App_Data /目录中部署网站时出现问题。将包上传到Azure时,请确保它为空。
您需要告诉Autofac将一些Azure特定类用于设置和博客存储。您可以在/Config/Host.config和/Config/Sites.config中找到它们。转到我上面的博文,了解我如何设置它们。
我花了几个小时搜索未复制到Azure包的程序集。确保所有引用都是“Copy Local”,甚至是MVC3引用。
确保您在ServiceConfiguration.cscfg中设置了正确的DataConnectionString。我长时间撞在墙上,因为我在那里为另一个帐户添加了一个连接字符串。
如果您打算从脚本部署,则需要设置将用于部署的证书。我使用Visual Studio创建证书,然后仅从我的脚本中引用它。