我可以成功将多个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而不仅仅是网站的二进制文件?是否缺少开箱即用的东西,或者需要自定义的构建后脚本?