“Web”网站就是您创建的新项目或将WebRole添加到云项目时选择的现有项目。所以WebRole的默认站点(Web)直接映射到该Web项目。
这只是表示它将使用RoleEntryPoint(WebRole.cs)的该项目的程序集。这就是为什么该项目的输出在批注中(这是执行RoleEntryPoint的地方)和siteroot(IIS网站)中使用的原因。
现在,如果你想保持你的包小,你确实可以创建一个虚拟的网站,只为WebRole.cs部分,并有一个真正的网站,除此之外。这将创建3 '文件夹' 部署天青时:
- 为approot =>包含虚设位点
- sitesroot \ 0 =非常小目录>包含虚设位点
- sitesroot非常小的目录\ 1 = >你真正的网站
什么你想要做的是与端点发挥,以确保虚拟网站不会暴露给它一个内部端点:
<WebRole name="MyWebRole" vmsize="Small">
<Sites>
<Site name="Web">
<Bindings>
<Binding name="Endpoint1" endpointName="DummyEndpoint" />
</Bindings>
</Site>
<Site name="RealWebApplication" physicalDirectory="..\MvcApplication1">
<Bindings>
<Binding name="Endpoint2" endpointName="RealEndpoint" />
</Bindings>
</Site>
</Sites>
<Endpoints>
<InputEndpoint name="RealEndpoint" protocol="http" port="80" />
<InternalEndpoint name="DummyEndpoint" protocol="http" />
</Endpoints>
...
</WebRole>
而且你的虚拟Web应用程序看起来像这样:
你为'physicalDirectory'设置了什么,通过将名称从'Web'改为其他名称,你获得了什么? – Guillaume 2014-06-30 15:14:49
@Guillaume:我设置了一个相对路径,比如'.. \ ..\ RoleProjectFolderInHere'并且增益是一个明显更小的包和更快的包创建。 – sharptooth 2014-07-01 07:58:40
谢谢,不幸的是,这只适用于本地构建,而不适用于构建TFS :( – Guillaume 2014-07-01 08:03:06