2012-06-05 50 views
0

我在使用三個站點(Azure v1.6,完全信任)設置一個Web角色時遇到問題。嵌套虛擬應用程序不起作用?

下面是它的配置在IIS快遞:

<site name="Empty.Dummy.Site" id="2"> 
    <application path="/" applicationPool="appPool"> 
    <virtualDirectory path="/" physicalPath="c:\Sites\Empty.Dummy.Site" /> 
    </application> 
    <application path="/mainSite"> 
     virtualDirectory path="/" physicalPath="C:\Sites\mainSite" /> 
    </application> 
    <application path="/mainSite/virtualChild"> 
    <virtualDirectory path="/" physicalPath="c:\Sites\virtualChild" /> 
    </application> 
    <bindings> 
     <binding protocol="http" bindingInformation="*:55555:localhost" /> 
    </bindings> 
</site> 

What's missing in ServiceDefinition.csdef is the "path" attribute. 

I've tried a lot using nested virtual path and things but not got it to work. 

For example: 
<Sites> 
    <Site name="Empty.Dummy.Site" physicalDirectory="c:\Sites\Empty.Dummy.Site > 
     <VirtualApplication name="mainSite" physicalDirectory="C:\Sites\mainSite"> 
      <VirtualApplication name="virtualChild" physicalDirectory="c:\Sites\virtualChild"/> 
    </VirtualApplication> 
     <Bindings><Binding name="Endpoint1" endpointName="HttpIn" /></Bindings> 
</Site> 

任何建議或其他選擇嗎?

我正在尋找的解決方案應該導致3個網站在同一個web角色!

  1. http://demo.cloudapp.net/
  2. http://demo.cloudapp.net/MainSite/
  3. http://demo.cloudapp.net/MainSite/VirtualChild

回答

0

要使用導致的URL像你描述的(據說)什麼虛擬應用程序

<Site name="Web"> 
    <VirtualApplication name="application-name" physicalDirectory="relative-location" /> 
    … 
</Site> 

我不是語法確定它是否支持http://demo.cloudapp.net/MainSite/VirtualChild場景,t霍夫。

http://msdn.microsoft.com/en-us/library/windowsazure/gg433110.aspx有一些不錯的選擇。

我個人更喜歡使用主機頭,並獲得網址像

  1. http://demo.myapp.com/
  2. http://main.myapp.com
  3. http://virtualchild.myapp.com

如果你的設置不是靜態的 - 即你正在計劃增加網站動態 - 這是值得看看Windows Azure Acceleratorfor Web Roles

+0

我看過微軟的文檔,並沒有找到「我的案例」的例子。與我接壤的是,在「IIS Express」或標準IIS中很容易實現它,但在Azure中似乎不可能... 在我上面的場景中,我希望將它作爲描述,因爲它有點是遺留應用程序的組合(網頁表單)和新的MVC應用程序,並且它已經在IIS中以這種方式映射了一段時間,所以很不幸有一些工作需要修復它。 – DNPE