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

时间:2013-07-10 05:25:16

标签: asp.net azure cloud azure-web-roles

我经历了多篇文章和SO问题,例如 - thisthisthis(和许多其他人)

但是没有一个能解决我的问题。我想在一个云服务中部署两个Web角色。我尝试部署相同但发现一个正在运行而其他Web角色抛出 - Internet Explorer无法在firefox中显示网页/连接超时。

以下是我到目前为止所做的尝试: -

当我将应用程序或服务部署到云服务时,我有两个Web角色(应用程序和服务),例如http://xxxx.cloudapp.net,它运作正常。

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

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

但是当我的应用程序部署在端口80上时,我的应用程序工作正常。

这是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>

我在这里缺少什么?

1 个答案:

答案 0 :(得分: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)或者将一个webrole部署到暂存,将其他角色部署到生产。 (你会得到不同的终点)