且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何在Windows Azure中部署果园CMS?

更新时间:2022-12-23 16:00:47

我没有得到ClickToBuildToAcure.cmd脚本工作,这就是为什么我写的我自己一个人,斯图尔特帮助链接。我的博客 http://litemedia.info 是在Azure上运行,这些博客文章描述了我是如何做的。

I didn't get ClickToBuildToAcure.cmd script to work and that is why I wrote my own one, that Stuart helped linking to. My blog http://litemedia.info is running on Azure and those blog posts describes how I did it.

一些指点


  1. 我的Global.asax.cs看起来比起本地运行在Azure上有点不同。

  1. My Global.asax.cs looks a bit different on Azure compared to running local.

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是空的。

  • I had problems deploying with sites in /App_Data/ directory. Make sure that it is empty when you upload your package to Azure.

    您需要告诉Autofac使用一些特定的Azure类的设置和博客存储。你会在/Config/Host.config和/Config/Sites.config找到这些。转到上面我的博客文章,看我怎么设置它们。

    You need to tell Autofac to use some Azure specific classes for settings and blog storage. You'll find these in /Config/Host.config and /Config/Sites.config. Go to my blog post above to see how I set them up.

    我花了几个小时追捕,这不是复制到Azure的封装组合。确保所有引用复制本地,即使是那些MVC3

    I spent several hours hunting down assemblies that was not copied to the Azure package. Make sure that all references are "Copy Local", even the MVC3 ones.

    真正确保您有ServiceConfiguration.cscfg正确DataConnectionString设置。我敲我的头撞在墙上很长一段时间,因为我已经把另一个帐户有一个连接字符串。

    Really make sure that you have the correct DataConnectionString setup in ServiceConfiguration.cscfg. I was banging my head against the wall for a long time because I had put a connection string for another account there.

    如果你打算从你需要设置将用于部署证书的脚本部署。我用Visual Studio创建的证书,然后只能从我的脚本引用它。

    If you intend to deploy from a script you need to setup a certificate that will be used for the deployment. I used Visual Studio to create the certificate, and then only reference it from my script.

    祝你好运!