2011-12-04 24 views
1

我创建了两个网站是这样的:如何正确设置子域名的hostHeader?

<Sites> 
    <Site name="WebRole" physicalDirectory="./WebRole"> 
    <Bindings> 
     <Binding name="Endpoint1" endpointName="HttpEndpoint" /> 
    </Bindings> 
    </Site> 
    <Site name="MySite" physicalDirectory="./MySite">   
     <Bindings>      
     <Binding name="Endpoint" endpointName="HttpEndpoint" hostHeader="www.MySite.com"/>      
     </Bindings>  
    </Site> 
</Sites> 

我已经下CNAME(别名)改变了我的DNS - > www会xxx.cloudapp.net

因此,当我在www.MySite类型。 com它到达我的云应用程序,hostHeader被识别并进入正确的物理站点。 HostHeader工作正常。

现在我尝试做一个子域相同的事情。

<Site name="MySite" physicalDirectory="./MySite">  
     <Bindings>     
      <Binding name="Endpoint" endpointName="HttpEndpoint" hostHeader="sub.MySite.com"/>      
     </Bindings>  
</Site> 

在DNS经理,我没有尝试这样做的CNAME,而是我做了子域到同一侧的地址xxx.cloudapp.net的蒙面转发。

但这不起作用。它只是打开第一个网站。看起来HostHeader并不理解为了指向第二条物理路径。

我错过了什么?

+0

我认为掩蔽是问题所在。你是如何设置遮罩的?检查小提琴手当你试图击中你的子域时会发生什么。你为什么不使用CNAME? – astaykov

回答

1

据我所知,“屏蔽转发”通常通过使用帧来工作,并且如果是这种情况,主机头信息将不会被转发到Azure。

您的DNS主机将创建一个带有框架的网站,该框架的数据将来自xxx.cloudapp.net网站。由于没有主机头信息转发,Azure负载平衡器将无法使用备用站点。

恐怕看起来您需要使用CNAME系统来显式转发主机名称。

+0

谢谢。你是对的。在提出这个问题之后,我意识到它必须做一些转发。我设法简单地输入子域名作为CName并将其转发给xxx.cloudapp.net。现在我的子域名工作。尽量避免转发。 – Houman