加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在Azure上动态创建WebSite

发布时间:2020-12-17 01:02:40 所属栏目:安全 来源:网络整理
导读:? 在Azure上动态创建WebSite 本文将介绍一种在已经部署的WebRole上动态创建一个WebSite的方法。当然,也可以使用Role的部署文件包来一同创建多个WebSite或多个Web虚拟目录,关于这种方法请参考我的另一篇文章《WindowsAzure上把WebApp和WebService同时部署在
?

在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%System32InetSrv目录中。由于在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:WindowsSystem32driversetchosts文件,比照如下的格式增加一条记录。

111.222.333.444??? www.mysite.com

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读