让一个WebRole支持多个站点

在参考Configure a Web Role for Multiple Web SitesTips for Publishing Multiple Sites in a Web Role两篇文章后,用记事本打开Azure项目文件(*.ccproj),在尾部添加如下配置,即可实现多个站点共享一个WebRole,从而更有效的利用Azure资源。

<PropertyGroup>

    <!-- Inject the publication of "secondary" sites into the Windows Azure build/project packaging process. -->

    <CoreBuildDependsOn> CleanSecondarySites; PublishSecondarySites; $(CoreBuildDependsOn) </CoreBuildDependsOn>

    <!-- This is the directory within the web application project directory to which the project will be "published" for later packaging by the Azure project. -->

    <SecondarySitePublishDir>azure.publish\</SecondarySitePublishDir>

  </PropertyGroup>

  <!-- These SecondarySite items represent the collection of sites (other than the web application associated with the role) that need special packaging. -->

  <ItemGroup>

    <SecondarySite Include="..\Admin\Admin.csproj" />

    <SecondarySite Include="..\WebSite\WebSite.csproj" />

  </ItemGroup>

  <Target Name="CleanSecondarySites">

    <RemoveDir Directories="%(SecondarySite.RootDir)%(Directory)$(SecondarySitePublishDir)" />

  </Target>

  <Target Name="PublishSecondarySites" Condition="'$(PackageForComputeEmulator)' == 'true'&#xD;&#xA; Or '$(IsExecutingPublishTarget)' == 'true' ">

    <!-- Execute the Build (and more importantly the _WPPCopyWebApplication) target to "publish" each secondary web application project. Note the setting of the WebProjectOutputDir property; this is where the project will be published to be later picked up by CSPack. -->

    <MSBuild Projects="%(SecondarySite.Identity)" Targets="Build;_WPPCopyWebApplication" Properties="Configuration=$(Configuration);Platform=$(Platform);WebProjectOutputDir=$(SecondarySitePublishDir)" />

  </Target>

你可能感兴趣的:(role)