在Azure上动态创建WebSite

 

在Azure上动态创建WebSite

本文将介绍一种在已经部署的WebRole上动态创建一个WebSite的方法。当然,也可以使用Role的部署文件包来一同创建多个WebSite或多个Web虚拟目录,关于这种方法请参考我的另一篇文章《WindowsAzure上把WebApp和WebService同时部署在一个WebRole中》。

1、 提升WebRole的权限为管理员权限。

在ServiceDefinition.csdef文件中追加下面的配置。

  <WebRole name="MvcWebRole1" vmsize="Small">
    <Runtime executionContext="elevated"></Runtime>
  </WebRole>


 

2、防火墙上的端口屏蔽。

在我们采用常规手段部署Site的时候,我们的应用程序要么使用相同的端口不同的HostName,要么使用不同的端口相同的IP地址。在Azure上,由于Azure只在部署文件包部署的时候在防火墙中打开了固定的端口(远程桌面连接的端口除外),所以,此处使用不同端口的方式很难行得通,没办法,我们也只有采用相同端口不同HostName的方式动态创建WebSite了。可以在Window Azure Management Portal查看哪个端口是开放的。

3、Microsoft.Web.Administration程序集

在创建WebSite的代码中需要引用Microsoft.Web.Administration程序集,该程序集在%WinDir%\System32\InetSrv目录中。由于在AzureHost的GAC中默认不包含该程序集,所以,需要把该程序集的Copy Local属性设置为true。

 

4、动态创建WebSite的代码

    string newWebsitePath = "Your app path";
    using (ServerManager serverManager = new ServerManager())
    {
        /* 创建 application pool */
        ApplicationPool applicationPool =
                serverManager.ApplicationPools.Add("MyApplicationPool");
        applicationPool.AutoStart = true;
        applicationPool.ManagedPipelineMode = ManagedPipelineMode.Integrated;
        applicationPool.ManagedRuntimeVersion = "v4.0";

        /*创建 web site */
        Site site = serverManager.Sites.
                Add("MyNewSite", "http", "*:80:www.mysite.com", newWebsitePath);
        site.Applications[0].ApplicationPoolName = "MyApplicationPool";
        site.ServerAutoStart = true;
        serverManager.CommitChanges();
    }

5、测试动态创建的WebSite

这也很简单,首先请在Window Azure Management Portal中找到你部署的WebRole的Ip地址,然后打开C:\Windows\System32\drivers\etc\hosts文件,比照如下的格式增加一条记录。

111.222.333.444    www.mysite.com

然后,在你的浏览器中输入www.mysite.com,看是不是已经看到你动态创建的Site了。

 

 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值