在单个Azure角色中正确部署多个站点

时间:2015-05-29 09:14:35

标签: c# azure deployment configuration

我可以成功将多个c#.NET 4.5网站部署到单个Azure Web角色,但我想知道我是否正确地将其作为physicalDirectory属性.csdef属性1}}文件指向正在部署的每个网站的\websiteX\bin\Release目录:

<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="CloudService" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2015-04.2.6">
  <WebRole name="MyWebRole" vmsize="Small">
    <Sites>
      <Site name="WebsiteX" physicalDirectory="..\..\..\WebsiteX\bin\release">
        <Bindings>
          <Binding name="http" endpointName="http" hostHeader="WebsiteX.cloudapp.net" />
        </Bindings>
      </Site>
      <Site name="WebsiteY" physicalDirectory="..\..\..\WebsiteY\bin\release">
        <Bindings>
          <Binding name="http" endpointName="http" hostHeader="WebsiteY.cloudapp.net" />
        </Bindings>
      </Site>
    </Sites>
    <Endpoints>
      <InputEndpoint name="http" protocol="http" port="80" />
    </Endpoints>
  </WebRole>
</ServiceDefinition>

我在以下帖子中看到:Can you deploy multiple webapps on one Windows Azure instance? / http://www.wadewegner.com/2011/02/running-multiple-websites-in-a-windows-azure-web-role physicalDirectory属性指向要部署的网站的根目录(仅\websiteX其中.csproj文件所在的位置,如果我没有弄错?)

但是,当我将.csdef physicalDirectory指向此位置(\websiteX)并部署到Azure时,该进程实际上会部署该目录中的所有内容。每个文件夹和文件都可以有效地复制到Azure。

这是我想要使用的.csdef,因为它看起来更干净,并且在网络上的许多示例中使用。请注意缺少\bin\release

<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="CloudService" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2015-04.2.6">
  <WebRole name="MyWebRole" vmsize="Small">
    <Sites>
      <Site name="WebsiteX" physicalDirectory="..\..\..\WebsiteX">
        <Bindings>
          <Binding name="http" endpointName="http" hostHeader="WebsiteX.cloudapp.net" />
        </Bindings>
      </Site>
      <Site name="WebsiteY" physicalDirectory="..\..\..\WebsiteY">
        <Bindings>
          <Binding name="http" endpointName="http" hostHeader="WebsiteY.cloudapp.net" />
        </Bindings>
      </Site>
    </Sites>
    <Endpoints>
      <InputEndpoint name="http" protocol="http" port="80" />
    </Endpoints>
  </WebRole>
</ServiceDefinition>

我做错了什么,以至于我无法使用第二个.csdef文件?为什么从第二个.csdef的部署将整个项目目录部署到Azure而不仅仅是网站的二进制文件?是否缺少开箱即用的东西,或者需要自定义的构建后脚本?

0 个答案:

没有答案