如何在Azure中部署多个Web角色

4
我已经阅读了多篇文章和SO问题,例如 - this, this, 和this(以及许多其他文章)。
然而,它们都无法解决我的问题。我想在一个云服务中部署两个Web角色。我尝试部署相同的内容,但发现其中一个正在运行,而另一个Web角色会抛出“Internet Explorer无法显示网页/ Firefox连接超时”的错误信息。
以下是我迄今为止尝试过的方法: -
我有两个Web角色(App和Service),当我将App或Service部署到云服务(例如http://xxxx.cloudapp.net)时,它可以正常工作。

但是当我尝试在http://xxxx.cloudapp.net上部署端口为8080的应用程序和端口为80的服务,并尝试浏览-http://xxxx.cloudapp.net时,它显示服务页面。

然而,在使用http://xxxx.cloudapp.net:8080浏览应用程序时,它会抛出错误-Internet Explorer无法显示网页/ Firefox连接超时。

但是,当只部署应用程序时,我的应用程序可以正常工作。

这是ServiceDefinition文件:-

<ServiceDefinition name="AppServiceAzure" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2013-03.2.0">
  <WebRole name="MyService" 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>
    <Certificates>
      <Certificate name="mycert" storeLocation="LocalMachine" storeName="My" />
    </Certificates>
  </WebRole>

  <WebRole name="MyApp" 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>
    <Certificates>
      <Certificate name="mycert" storeLocation="LocalMachine" storeName="My" />
    </Certificates>
  </WebRole>
</ServiceDefinition>

这里我错过了什么?

我刚刚测试了一下,它可以正常工作。我创建了一个云项目,其中包含两个Web角色,每个角色都有一个单独的Web项目。其中一个在端口80上响应,另一个在8080上响应。请确保您的云服务中有两个打开的端点。转到管理门户、云服务、仪表板,复制“输入端点”部分,并将其更新到您的问题中(如果需要,隐藏IP地址)。让我们看看端口是如何映射到角色的。 - Fernando Correia
我有同样的问题。这是输入端点:Role1: IP:80,Role1: IP:443,Role2: IP:8080 <-- 不起作用,Role2: IP:3389。 - daliusd
1个回答

0
每个Windows Azure Compute实例代表以下任一角色的虚拟服务器。
Windows Azure Compute instance
|
|_______[front-end] web server (Web role)
        |
        |
        |_____Site1
        |
        |
        |_____Site2
        |
        |
        |_____Site3 etc.

或者

|
|
|
|_______back-end/.NET] application server (Worker role)


or

|
|
|
|_______VM

我建议两种方法: 1)在一个角色中创建多个站点。(您将获得不同的端点) 2)或将一个Web角色部署到暂存,另一个角色部署到生产。(同样,您将获得不同的端点)

1
不确定第二种方法是否可行,因为您将失去实际使用预发布/生产环境的能力。 - Fishcake

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接