• Windows Azure Cloud Service (16) 使用Windows Azure Connect,实现云端应用连接本地SQL Server 2008 R2数据库


      《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修改成以下的形式

    <connectionStrings>
    <add name="employeeinfoConnectionString" connectionString="Data Source=[LocalSQLServerName], 1433;Initial Catalog=[LocalDataBase];User ID=[username];Password=[password]"
    providerName
    ="System.Data.SqlClient" />
    </connectionStrings>

    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文件里,在<WebRole>节点里添加如下内容

     <Startup>
    <Task commandLine="EnablePing.cmd" executionContext="elevated" taskType="simple" />
    </Startup>

    4.设置远程桌面连接的用户名和密码,并且发布Azure Project

    5.通过远程桌面连接登录到云计算中心的计算节点里。然后ping本地机器的机器名

     我们甚至可以让本地机器连接Windows Azure计算节点共享的文件夹。(过程略)



     

  • 相关阅读:
    昇腾AI处理器软件栈--任务调度器(TS)
    [转]shopnc 版权问题
    关于对接诸葛IO 解决的问题
    Mysql中like查询中存在反斜杠的解决方法
    关于TP,PHP和shopnc 的cookie
    TypeError: document.getElementById(…).submit is not a function解决
    关于图片上传的 相对路径出现问题
    Android 通讯录
    关于kindedit和 Uedit后者兼容前者
    Handler机制
  • 原文地址:https://www.cnblogs.com/threestone/p/2340345.html
Copyright © 2020-2023  润新知