2011-12-04 55 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