2011-09-26 107 views
2

我正嘗試將現有的MVC 3網站遷移到Azure Web角色。我的開發環境中使用主機頭:將MVC 3網站遷移到Azure網絡角色

lcladmin.mysite.com

主機頭在我的主機文件指向127.0.0.1設置。如果我使用ServiceConfiguration.csdef中的默認設置,則該站點將正常加載爲127.0.0.1,但依賴於使用主機頭的功能不起作用。所以我嘗試在SericeConfiguration.csdef的Binding上設置hostHeader屬性,現在我在Visual Studio 2010中得到了這個錯誤對話框:

*將解除器附加到URL'http://的IIS工作進程時發生錯誤lcladmin.mysite.com:81/'for role instance'deployment(17).Azure.Admin_IN_0'。無法在Web服務器上啓動調試。由於語法無效,因此服務器無法處理調試請求。*

此時,我可以在我的Web瀏覽器中瀏覽網站,並且所有內容似乎都能正常工作,並且任何現有的斷點都將在VS 。但是,由於與上述消息的模態錯誤對話框,VS無法使用。

這裏是我的ServiceConfiguration.csdef的內容:

<ServiceDefinition name="Azure" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition"> <WebRole name="Admin" vmsize="Small"> 
<Sites> 
    <Site name="Web"> 
    <Bindings> 
     <Binding name="Endpoint1" endpointName="Admin" hostHeader="lcladmin.mysite.com" /> 
    </Bindings> 
    </Site> 
</Sites> 
<Endpoints> 
    <InputEndpoint name="Admin" protocol="http" port="81" /> 
</Endpoints> 
<Imports> 
    <Import moduleName="Diagnostics" /> 
</Imports> 

我不認爲這是針對我或者遷移該網站的一個問題。如果我將一個新的Azure項目添加到我的解決方案中,並添加一個新的MVC 3 Web角色,並且我所做的唯一更改是添加hostHeader屬性,它也會執行相同的操作。

+0

我意識到我可以從Visual Studio W/O調試,但我想知道是否有辦法解決這個問題,我可以自動附加。 –

+1

您是否嘗試將域添加到Windows中的hosts文件? –

回答

4

由邁克爾·尼爾此博客條目解決了我同樣的問題:Debugging Azure WebRoles with Multiple Sites

閱讀邁克爾的輸入後,對我來說,關鍵是要得到主機的正確IP地址文件 - 在評論中提及了樣他的條目 - 我的IP需要是127.255.0.0(在Azure模擬器發生部署後,您可以在IIS中查看您的系統,查看網站的綁定)