上一节我们介绍了通过Visual Studio2015如何连接到Windows Azure Portal,今天呢我们就介绍如何使用Vistual Studio 2015 发布一个web站点到Windows Azure VM,当然我们也知道通过Vs发布web站点到windows azure一共有三种方式:1. 通过visual studio2015发布到windows azure的websites;2. 通过visual studio2015发布到windows azure的vm下 --是一个典型的Iaas方式;3. 通过visual studio2015发布到windows azure的cloud下,该方式 是一个典型的Paas方式,我们今天主要是想通过vs发布站点发布到第二种方式下(microsoft vistual machines),也就是所谓的IAAS方式;IaaS(Infrastructure as a Service),即基础设施即服务;PaaS: Platform-as-a-Service(平台即服务);
把服务器平台作为一种服务提供的商业模式。通过网络进行程序提供的服务称之为SaaS(Software as a Service),而云计算时代相应的服务器平台或者开发环境作为服务进行提供就成为了PaaS(Platform as a Service)。所谓PaaS实际上是指将软件研发的平台(计世资讯定义为业务基础平台)作为一种服务,以SAAS的模式提交给用户。因此,PaaS也是SAAS模式的一种应用。但是,PAAS的出现可以加快SaaS的发展,尤其是加快SaaS应用的开发速度。简单地说,PaaS平台就是指云环境中的应用基础设施服务,也可以说是中间件即服务。PaaS平台在云架构中位于中间层,其上层是SaaS,其下层是IaaS 。在传统On-Premise部署方式下,应用基础设施即中间件的种类非常多, 有应用服务器,数据库,ESBs, BPM, Portal,消息中间,远程对象调用中间件等等。
我们首先是确认vistual studio已经正常连接到了windows azure 平台
接着我们通过vistual studio新建一个测试项目
定义好后,我们先通过本地进行测试,正常打开该服务
我们azure上已经存在了一个之前测试用过的虚拟机,os为windows2012r2.
通过远程桌面进行连接该vm
我们通过vistual studio做了一个测试页面,在本地测试是通过的,然后我们需要将该页面通过vistual studio发布到该虚拟机上
当然我们可以通过virstual studio直接将网站发布到windows azure的web服务下。但是今天的需求不是这样的。
我们比如需要将该网站发布到windows azure的web下仅仅需要。单击发布---
发布选项有,windows azure的website及vistual mactines方式。我们今天是需要使用vistual studio发布站点到windows azure vistual machines上。
我们操作前先演示一下使用vistual studio直接发布到windows azure的website上。选择mictosoft azure websites
因为我windows azure目前下有两个web服务,如果没有的话,可以单击新建;新建一个websites,定义名称及选择数据库类型
今天我们需要使用vistual studio发布web到windows azure vm下。Windows azure下当前环境只有一个vm名称为:vpntest
同时只有一个云服务:iiosoft-cloudservies
我们右击项目---发布---microsoft vistual machines
我们发现问题了,我的windows azure下有一个vm,原因是因为,vistual studio链接到windows azure后,windowwss azure vm的8172端口没有打开,所以会找不到,我们接下来打开windows azure vm的8172端口试试
如果想新建一个虚拟机的话,可以通过新建:
我们可以新建虚拟机,然后看看我虚拟机配置:
我们打开windows azure vm的8172端口,在port页面单击虚拟机----小箭头
单击端点,然后单击添加名称任意定义
名称可以自定义,在此为了显示正规,我们就定义为WebDePloy,端口8172
开始添加
添加完成:
因为我们是运行web服务,所以需要我们将80、443添加到端点
添加后我们再vistual studio上试试:
设置完端口后,请您等待几分钟再去重新点击发布,刷新VS中的界面,端口设置后到生效需要一小段时间(即使Portal上显示设置完成了,您也需要等待大概5分钟左右)。
要想发布成功,请在虚拟机安装web deploy.
我们选择该vm后,我们单击确认
确认发布方式及信息
我们验证链接提示失败,原因是因为远程计算机未安装WEB Deploy
那我们根据提示安装一下web deploy工具呗。
我们首先是下载web deploy工具
http://www.microsoft.com/zh-cn/download/details.aspx?id=39277
http://www.microsoft.com/zh-cn/download/details.aspx?id=30436
我们下载后,开始安装
下载后,我们开始安装
运行开始安装
安装完成
我们在通过vs发布一下试试,我们发现还是失败的。经过确认后确认在安装web deploy的时候有一些组件没有安装上,所以我们需要重新安装一下。
1. 先安装IIS, 再安装 “web deploy”(http://www.iis.net/downloads/microsoft/web-deploy) 因为如果先安装了 “web deploy”而后安装IIS, 一些基于IIS的组件就无法正常安装.
我们通过powershell来查看都安装了那些软件:
(如果你先安装了web deploy,在repair “web deploy”的时候选择”custom” 安装缺失的组件即可,Management Service Delegation是必须安装的)
因为我事前已安装了web deploy组件,后来才安装的iiis等组件,所以我们需要通过修复已经安装的web deploy来重新部署服务。我们需要安装程序和功能,或者双击运行web deploy安装包的方式来修复
我们发现服务都没有安装,所以我们需要重新勾选必要的服务进行安装
通过下来的方式来安装定义功能:
下一步安装
正在更改
完成
安装完web deploy后,使用netstat –ano 来查看端口8172是否被监听了,如果被监听了说明服务正常了
2. 配置Web Deploy:
1) 启用Web Deploy的第一步是打开IIS管理器(开始->运行->inetmgr.exe)。接着在主界面上双击“Management Service Delegation”图标:
双击“Management Service Delegation”图标后,会打开类似下图的页面。在动作面板上,点击“Edit Feature Settings …”链接,打开“Edit Feature Settings”对话框—选中“Allow administrators to bypass rules”选项。这允许有服务器上管理员帐号的用户跳过Web管理服务的委托设置,而是使用管理员的权限进行操作:
双击“管理服务”图标后会打开下面的页面。选中“Enable Remote Connections”复选框来启用远程部署。另外你也可以选择填写正在运行的管理服务的IP和端口号—还有允许那些客户端IP可以连接进来。你可以通过调整这些设置来限制访问部署服务的人员。
在“操作”页签点击“启动”连接就会在服务期上启动Web管理服务:
重要事项:一个需要关注的事情是你的服务器上是否启用了防火墙,或你的服务器在集群中的位置。管理服务默认使用HTTPS协议运行在8172这个端口。这个端口可能默认被你主机的设置关闭了。这样的话,要么你需要在防火墙/或宿主上打开它—要么选择一个允许的端口号。要测试管理服务是否可用,只需要打开浏览器并访问类似https://yourservername:8172/MsDeploy.axd 的链接就可以—如果你被要求提供用户名/密码,那说明它没有被防火墙阻挡。如果是超时则说明防火墙禁用了端口。
我们新建防火墙规则:
允许80,443,8172通过
操作完以上步骤后,我们开始用vistual studio再次发布iis到改vm试试
我们忽略该警告信息,单击接受即可
链接成功过,
我们单击下一步:
开始发布:
发布成功:
开始测试,测试失败,我们接下来排查问题了
首先想到的是重新注册iis。
注:因为默认打开的是iis默认文件,因为发布到了Default web site,所以里面会有iisstart文件,默认就会显示IIS的首页,把这个文件从文件夹移除,网站就显示自己的default文件了
本文转自 高文龙 51CTO博客,原文链接:http://blog.51cto.com/gaowenlong/1598994,如需转载请自行联系原作者