Azure Lei Zhang的博客

weibo: LeiZhang的微博/QQ: 185165016/QQ群:319036205/邮箱:leizhang1984@outlook.com/TeL:139-161-22926

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  390 随笔 :: 0 文章 :: 394 评论 :: 0 引用

  《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计算节点共享的文件夹。(过程略)



 

posted on 2012-02-06 18:06 Lei Zhang的博客 阅读(...) 评论(...) 编辑 收藏