4

将 azure SDK 更新到 1.8 后,我无法再正常运行我们的项目了。看起来本地模拟器使用相同的端口号以错误的方式创建 IIS 应用程序。如果我只是创建一个具有 5 个 Web 角色的新云项目,然后在 Azure 项目属性中设置使用 IIS Web 服务器,则可以重现该问题 Azure 项目属性

运行应用程序后,IIS 显示它们中的大多数已停止,因为同一端口已在使用中。它们都使用 8085 端口,必须仅分配给最后一个应用程序

在此处输入图像描述

在此处输入图像描述

向 Microsoft 报告的错误: http ://connect.microsoft.com/VisualStudio/feedback/details/773786/azure-sdk-1-8-binds-several-web-roles-to-the-same-port-on-local -模拟器#详细信息

不适用于 SDK 1.8 的默认 Visual Studio 服务配置

<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="WindowsAzure1" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2012-10.1.8">
  <WebRole name="WebRole1" vmsize="Small">
    <Sites>
      <Site name="Web">
        <Bindings>
          <Binding name="Endpoint1" endpointName="Endpoint1" />
        </Bindings>
      </Site>
    </Sites>
    <Endpoints>
      <InputEndpoint name="Endpoint1" protocol="http" port="80" />
    </Endpoints>
    <Imports>
      <Import moduleName="Diagnostics" />
    </Imports>
  </WebRole>
  <WebRole name="WebRole2" vmsize="Small">
    <Sites>
      <Site name="Web">
        <Bindings>
          <Binding name="Endpoint1" endpointName="Endpoint1" />
        </Bindings>
      </Site>
    </Sites>
    <Endpoints>
      <InputEndpoint name="Endpoint1" protocol="http" port="8080" />
    </Endpoints>
    <Imports>
      <Import moduleName="Diagnostics" />
    </Imports>
  </WebRole>
  <WebRole name="WebRole3" vmsize="Small">
    <Sites>
      <Site name="Web">
        <Bindings>
          <Binding name="Endpoint1" endpointName="Endpoint1" />
        </Bindings>
      </Site>
    </Sites>
    <Endpoints>
      <InputEndpoint name="Endpoint1" protocol="http" port="8081" />
    </Endpoints>
    <Imports>
      <Import moduleName="Diagnostics" />
    </Imports>
  </WebRole>
  <WebRole name="WebRole4" vmsize="Small">
    <Sites>
      <Site name="Web">
        <Bindings>
          <Binding name="Endpoint1" endpointName="Endpoint1" />
        </Bindings>
      </Site>
    </Sites>
    <Endpoints>
      <InputEndpoint name="Endpoint1" protocol="http" port="8082" />
    </Endpoints>
    <Imports>
      <Import moduleName="Diagnostics" />
    </Imports>
  </WebRole>
  <WebRole name="WebRole5" vmsize="Small">
    <Sites>
      <Site name="Web">
        <Bindings>
          <Binding name="Endpoint1" endpointName="Endpoint1" />
        </Bindings>
      </Site>
    </Sites>
    <Endpoints>
      <InputEndpoint name="Endpoint1" protocol="http" port="8083" />
    </Endpoints>
    <Imports>
      <Import moduleName="Diagnostics" />
    </Imports>
  </WebRole>
</ServiceDefinition>
4

2 回答 2

2

此处发布了相同的问题: 只有一个实例适用于 IIS7.5 上的 Azure 2012 年 10 月 SDK

我用相同的设置遇到了这个问题,尝试了一切合乎逻辑的解决方案,搜索了网络......什么都没有。我不明白这怎么可能。同一项目在旧版本的 Azure 模拟器上运行良好。谢谢女士。


更新:我在此处建议的注册表黑客攻击后解决了我的问题:

在具有 VS2012 但没有 VS2010 的干净机器上具有多个角色实例的 Windows Azure Compute Emulator (SDK 1.8) 的奇怪行为

似乎问题在于 VS2010 与 VS2012 的模拟器混淆选择设置。就我而言,我同时安装了 2010 和 2012,但即使仅全新安装 2012,它似乎也会影响您。

Microsoft.WindowsAzure.Common.Workarounds.TryGetVS2010SPVersion(仅名称)看起来像一个 hack,它需要一个额外的 reg hack 来修复它。再次感谢女士。:)

任何有此问题的人,请堆积此连接错误以供 MS 修复: https ://connect.microsoft.com/VisualStudio/feedback/details/773786/azure-sdk-1-8-binds-several-web-roles-到本地模拟器上的相同端口

于 2013-01-19T08:49:02.863 回答
0

您是否为云项目中的每个角色设置了不同的端点?如果不是,我希望能解决问题。这是有关如何执行此操作的基本博客文章:

http://robindotnet.wordpress.com/2012/07/02/how-to-set-up-an-https-endpoint-for-a-windows-azure-web-role/

于 2012-12-12T21:52:56.467 回答