2012-06-05 23 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