是否可以将一些网站挂在Azure的一个角色?

时间:2012-03-07 10:35:28

标签: azure port azure-web-roles

http://msdn.microsoft.com/en-us/library/windowsazure/gg433110.aspx

 <Site name="ClientService" physicalDirectory="..\qwer.ClientService">
    <Bindings>
      <Binding name="ClientService" endpointName="EndpointClientService" hostHeader="ClientService.tsasdc.com" />
    </Bindings>
  </Site>

错误

Error   1   The same local port '80' is assigned to input endpoints EndpointImageService and Endpoint1 in role qwer.Web.    C:\Users\Administrator\Desktop\prohect\src\qwer.Azure\ServiceDefinition.csdef   1   1   qwer.Azure

3 个答案:

答案 0 :(得分:1)

您必须为所需的所有站点使用同一个EndPoint。这是需要在每个Binding中定义“hostHeader”。例如,如果您需要端口80 HTTP端点 - 每个托管服务可能只有一个端点。您只需将所有网站映射到同一个端点。

当您具有Web角色时,Endpoint1是端口80上的预定义HTTP输入端点。您可以将其重命名为更有意义的内容,或者只将其用于第二个站点,而不要在HTTP协议和端口80上创建第二个输入端点。

答案 1 :(得分:0)

您可以拥有一些网站,但每个网站都必须指向自己独特的端口。如果您在同一个端口上有多个,则不知道将请求发送到哪个。

答案 2 :(得分:0)

您的两个网站都应具有相同的端点名称。 你有一个端点名称为Endpoint1的站点; 第二个站点(使用physicalDirectory attr)应该使用您已经放置的hostHeader到达同一个端点。

<Sites>
  <Site name="Web">
    <Bindings>
      <Binding name="Endpoint1" endpointName="Endpoint1" />
    </Bindings>
  </Site>
  <Site name="Web2" physicalDirectory="XXX">
    <Bindings>
      <Binding name="Endpoint1" endpointName="Endpoint1" hostHeader="YOUR HOST HEADER" />
    </Bindings>
  </Site>
</Sites>
<Endpoints>
  <InputEndpoint name="Endpoint1" protocol="http" port="80" />
</Endpoints>`