【问题标题】:What's the difference between "Web" website and other websites in Windows Azure?“Web”网站与 Windows Azure 中的其他网站有什么区别?
【发布时间】:2012-08-10 07:22:09
【问题描述】:

defining a web role 时,我可以在<WebRole><Sites> 元素下指定站点。其中一个站点可以有一个名称"Web",然后我不需要为它指定physicalDirectory - 相反,站点内容将被复制到sitesroot 文件夹并复制approot 的内容并扩展服务包。

所以它看起来很简单 - 我应该将我的网站命名为 "Web" 以外的任何其他名称并指定 physicalDirectory,它可以正常工作且不会重复,因此包更小。

将我的网站命名为"Web" 有什么好处吗?考虑到负面后果,我为什么要把它命名为"Web"

【问题讨论】:

    标签: azure package


    【解决方案1】:

    “Web”站点只是您在将 WebRole 添加到云项目时创建的新项目或选择的现有项目。因此 WebRole 的默认站点 (Web) 直接映射到该 Web 项目。

    这仅仅意味着它将使用该项目的程序集作为 RoleEntryPoint (WebRole.cs)。这就是为什么在 approot(这是执行 RoleEntryPoint 的地方)和 sitesroot(IIS 网站)中使用该项目的输出的原因。

    现在,如果您想让您的包保持较小,您确实可以创建一个仅用于 WebRole.cs 部分的虚拟站点,并且除此之外还有一个真实站点。这将在部署到 Azure 时创建 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 应用程序将如下所示:

    【讨论】:

    • Em... 看起来我不需要这两个站点 - 我只指定 physicalDirectory 并且我的站点内容不再重复。
    • 它真的有效吗?你的 WebRole.cs 也被执行了吗?
    • 在过去 3 年中是否有任何改变以提高效率?将虚拟网站设置为您的网络角色似乎也是一种浪费,因为它仍然被复制两次。
    【解决方案2】:

    几个月后,除了Web 和明确指定physicalDirectory 之外,我找不到将站点名称更改为任何名称的任何问题。它只是工作。

    看起来 Azure 工具的默认设置是不合理的。我的.cspkg 变小了,因此准备和卸载所需的时间更少,我浪费的时间也少了很多。我希望我早点找到这个。

    【讨论】:

    • 您将physicalDirectory 设置为什么?通过将名称从Web 更改为其他名称可以获得什么?
    • @Guillaume:我设置了一个相对路径,例如..\..\RoleProjectFolderInHere,其收益是一个明显更小的包和更快的包创建。
    • 谢谢,不幸的是,这仅适用于本地构建,不适用于 TFS 上的构建:(
    猜你喜欢
    • 2012-06-12
    • 1970-01-01
    • 2013-02-18
    • 1970-01-01
    • 2015-04-13
    • 2019-10-20
    • 1970-01-01
    • 2011-04-23
    • 2018-09-14
    相关资源
    最近更新 更多