【问题标题】:Can Kentico CMS, using MVC as the templating engine, be hosted on Azure Websites?使用 MVC 作为模板引擎的 Kentico CMS 可以托管在 Azure 网站上吗?
【发布时间】:2014-11-12 21:50:43
【问题描述】:

我们正在评估 Kentico 作为我们的一个客户的 CMS 选项,我们非常倾向于使用 Azure 网站作为生产托管平台。

根据我几天对 CMS 的审查,MVC 版本对 MVC(面向用户)部分使用单独的网站应用程序,并配置(在根 web.config 中)以连接到实际的 CMS/管理 webforms 应用程序或虚拟目录:

<add key="CMSApplicationGuid" value="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"/>
<add key="CMSApplicationName" value="Default Web Site/Kentico81_Sample_Basic"/>
<add key="CMSHashStringSalt" value="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"/>

我查看了他们的 Azure 解决方案,但找不到任何关于如何使用 MVC 的文档。我发现的用于开发 Kentico Azure 项目的最佳资源(即使它是为 7.0 编写的):http://devnet.kentico.com/docs/7_0/KenticoCMS_AzureGuide.pdf,它似乎专门用于使用 Azure 云服务。

简而言之,是否有任何可用资源可以指导我们朝着正确的方向开发用于 Azure 网站的 Kentico MVC 应用程序?

【问题讨论】:

    标签: asp.net-mvc azure azure-web-app-service kentico


    【解决方案1】:

    根据您的应用程序名称,我假设您使用的是 Kentico 8.1。您可以在以下位置找到此版本的最新文档:

    简而言之 - 可以在 Kentico 中遵循 MVC 模式并将其部署到 Windows Azure。有一个专门的项目 - CMSApp_MVC.csproj。默认情况下,此项目包含在部署到 Azure 的包中。如果您关注best practices,您还可以使用 Kentico 的内置导出/导入功能将您的 MVC 特定文件包含在包中(允许在 Kentico 实例之间传输站点 - 例如开发和生产)。

    【讨论】:

    • 当我使用 Web Deploy 将 CMSApp_MVC 发布到 Azure 网站实例时,它不会运行,并且在您的任何一个链接中都没有专门关于让 MVC 项目在 Azure 上运行的文档。 Could not load file or assembly 'CMS.OutputFilter' or one of its dependencies. 是我目前得到的。我可以轻松地将这个程序集添加为对 MVC 项目的引用,但我有一种很好的感觉,这只是一个开始,这就是为什么我希望这会被记录在某个地方。
    • 请注意,如果我发布 CMSApp 项目,它可以正常工作,但显然不包含 MVC 项目中的文件。
    • 您必须发布 CMSApp 项目。我很确定你的 MVC 项目也会被部署。
    【解决方案2】:

    我找到了这个文档:https://docs.kentico.com/display/K8/Publishing+web+application+projects+from+Visual+Studio,它解释了如何在使用 Web 部署时将其他 Web 应用程序项目包含在您的部署中。

    在发布 CMSApp 项目时,以下行(已包含在 CMSApp.csproj 中)实际上也在部署 CMSApp_MVC 项目文件:

    <PropertyGroup>
      <PipelineCollectFilesPhaseDependsOn>
        CustomBinaries;
        $(PipelineCollectFilesPhaseDependsOn);
      </PipelineCollectFilesPhaseDependsOn>
    </PropertyGroup>
    <Target Name="CustomBinaries">
      <Message Text="Collecting all contents of the bin folder." Importance="high"/>
      <ItemGroup>
        <_Binaries Include="bin\*.*" />
        <FilesForPackagingFromProject  Include="%(_Binaries.Identity)">
          <DestinationRelativePath>%(Identity)</DestinationRelativePath>
        </FilesForPackagingFromProject>
      </ItemGroup>
    </Target>
    

    我将继续评估,并在找到更多信息后更新此答案。

    【讨论】:

    • 好的,谢谢。你让我走上了正确的道路,但以上是我所缺少的。在我找到这篇文章之前,从文档中并没有明显看出 MVC 文件是与 CMSApp 项目一起部署的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-04
    • 2012-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-11
    相关资源
    最近更新 更多