shawnmei 发表于 2015-4-30 11:17:25

Windows Azure Cloud Service (14) 使用Windows Azure Connect,实现云端应用连接本地SQL Server 20

    《Windows Azure Platform 系列文章目录》
  
    Update 2015-03-10
    Azure Connect已经retired。如果客户要实现混合云方式,请使用Azure Virtual Network的Site-to-Site或者Point-To-Site。
  
  什么是Windows Azure Connect
  之前几章我已经介绍过,在特殊情况下,我们会遇到一些场景:客户希望把他们的应用放在云端来利用云计算的便利性,但是为了安全的考虑希望数据库仍旧放在公司的内网。这样会牵涉到内网IP,路由器、防火墙的设置等等一系列的问题,这样是不是意味着Windows Azure不能方便快捷的连接到内网的数据库资源呢?答案是否定的。
  利用Windows Azure Connect,Windows Azure用户可以在其Windows Azure托管服务和本地(内网)资源之间设置IP级别的安全网络连接,同时也保证了网络通信的安全性,概念上类似VPN。通过Windows Azure Connect,我们甚至可以访问本地的其他资源,比如共享文件夹、本地数据库、打印机等等。
  
  如何使用Windows Azure Connect
  在开始本次介绍之前,请先安装软件:
  -  本机安装SQL Server 2008 R2
  -  SQL Server Management Studio
  -  Visual Studio 2010
  -  最新版的Windows Azure SDK
  
  一.配置本机SQL Server
  1.打开SQL Server Management Studio并且连接本地SQL Server服务
  2.选择本地服务,右键-->Properties
  3.选择Security,选择SQL Server and Windows Authentication mode

  4.在Connections里选择"Allow remote connections to this server"

  5.打开SQL Server Configuration Manager,确保SQL Server Browser服务已经停止

  6.在SQL Server Network Configuration / Protocols for SQLEXPRESS里,设置TCP/IP为Enable

  7.选择TCP/IP,在IP Addressess选项里,IPALL-->设置TCP Port为1433

  8.选择OK并重启SQL Server

  二.设置本地防火墙规则
  1.为了允许云计算托管的服务能连到本地SQL Server服务,需要我们添加防火墙规则。打开Windows防火墙,选择"高级设置"

  2.在入站规则里,选择"新建规则"

  3.在"规则类型"里选择"端口"

  4.在"协议和端口"里,规则选择"TCP",特定本地端口输入1433

  5.在操作里,选择"允许连接"

  6.配置文件-->选择所有的规则

  7.最后我们给这个创建的规则起名,并选择"完成"

  
  三.安装本地终结点
  1.登录Windows Azure用户管理界面https://windows.azure.com/
  2.左侧列表选择"虚拟网络"
  3.点击"安装本地终结点"

  4.会弹出一个安装的对话框,我们选择"将链接服务到剪切板"。

  5.然后选择"确定"按钮。并且重新打开IE浏览器,会提供我们需要安装软件,注意一定要选择"运行",不能选择保存。

  6.开始安装程序

  7.安装完毕后,会在本地出现一个图标,表示当前的机器已经加入了Connect,如下图

  这个软件会每5分钟自动刷新一次,可以得到当前的连接信息。我们也可以手动刷新。在用户管理界面选择"激活的终结点"就能看到自己的机器。

  其中名称,就是我本机的机器名,我们可以通过查看本机的机器名来进行验证。

  
  四.部署云端应用。
  1.登录Windows Azure用户管理界面。"虚拟网络"列表里-->点击"获取激活令牌"

  2.点击"将令牌复制到剪切板"

  3.新建一个Windows Azure Project,命名为"Azure Connect",添加一个Web Role
  4.Web Role--> 右键属性,在Virtual Network里,复制剪切板的内容。

  5.在WebRole-->Default.aspx里,添加DataGrid,SQL Connection选择本机的SQL Server数据库下的某张表。
  6.修改WebRole-->Web.config-->将DataGrid生成的connectionstring修改成以下的形式




   

  
  7.发布Azure Project至Windows Azure。
  8.部署成功后,在"虚拟网络"-->"激活的终结点"里能看到:

  其中
  -  第一行:名称LEIXXXXX,类型为计算机的。是我本地的PC机器。
  -  第二行:名称为RDXXXXX,类型为角色实例的。是我在云端的托管服务。
  
  五.建立连接组
  在默认情况下,本地的PC机器和云端的Azure托管服务不会进行连接。
  最后,我们就要让能够让机器和Azure服务进行连接。
  打开"虚拟网络"-->"创建组",我们以此添加终结点和Azure角色。

  最后在"组合角色"里就能看到我们创建的终结点和Azure角色

  我们回到本地机器的界面,会发现托盘图标已经改变了,状态也变为Connected了。

  

  六.测试本地机器和Windows Azure之间的连接
  1.我们打开之前部署的Azure托管服务。

  这样托管在Windows Azure的云服务就可以直接连接到本机的SQL Server 2008 R2数据库里了。
  
  七.远程桌面连接云端应用,然后ping本地主机
  1.回到之前的新建的Web Project里,Web Project里新增EnablePing.cmd文件,输入如下命令:



Echo Enable ICMP
netsh advfirewall firewall add rule name="ICMPv6 echo" dir=in action=allow enable=yes protocol=icmpv6:128,any
exit /b 0
  2.选择EnablePing.cmd文件,右键-->Copy to Output Directory-->Copy Always
  3.在ServiceDefinition.csdef文件里,在节点里添加如下内容




      
   
  4.设置远程桌面连接的用户名和密码,并且发布Azure Project
  5.通过远程桌面连接登录到云计算中心的计算节点里。然后ping本地机器的机器名

  我们甚至可以让本地机器连接Windows Azure计算节点共享的文件夹。(过程略)
  
页: [1]
查看完整版本: Windows Azure Cloud Service (14) 使用Windows Azure Connect,实现云端应用连接本地SQL Server 20