65.9K
CodeProject 正在变化。 阅读更多。
Home

Azure 虚拟网络 - 连接本地数据库

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.29/5 (6投票s)

2011年9月27日

CPOL

4分钟阅读

viewsIcon

44061

downloadIcon

496

Windows Azure 虚拟网络允许我们在本地和 Windows Azure 资源之间建立基于 IP 的网络连接。在本例中,我们将学习如何通过 TCP 端口将本地 SQL Server 数据库连接到云应用程序的基础知识。

引言

通常,大多数云应用程序都用于连接 SQL Azure 等数据库。但有些客户可能出于数据安全方面的考虑,希望使用自己的数据库服务器。在本例中,我们可以从自己的系统建立到云应用程序的本地数据库连接。为此,我们需要互联网连接和 Azure 订阅才能继续。

完成此示例需要执行以下步骤

第一步:准备本地数据库设置

第二步:配置并启用 SQL Server 的 TCP 端口 4133

第三步:将本地计算机添加到 Azure Connect

第四步:创建一个带有 Web 角色(Web Role)的云项目,并添加用于 SQL Server 连接测试的代码

第五步:向 Azure Connect 添加角色

第六步:发布项目

第七步:建立连接组

第八步:使用 Azure 角色实例测试 Azure 本地 SQL Server 连接

第一步:准备本地数据库设置

我们可以使用任何 SQL Server Express 版本。在本例中,我使用的是“Denali Express Edition”,服务器名称为“Raj-PC”。服务器名称可以根据您的软件设置而定;如果它带有 Express Edition 的默认实例,则可能为 <ServerName>/SQLEXPRESS

SQL Server Database Connection

名为“emp”的表包含一些示例数据,有两个列:empno ename

SQL Server data

第二步:配置并启用 SQL Server 的 TCP 端口 4133

通过右键单击 SQL Server 并选择“属性”来验证 SQL Server 配置。服务器身份验证必须是混合模式,并且应允许远程连接。

SQL Server Mixed mode

SQL Server Remote Connection Permissions

转到 SQL Server 配置管理器并启用 TCP/IP 协议。

SQL Server Configuration Manager

SQL Server TCP/IP

双击 TCP/IP,在“IP All”部分设置/验证端口 1433,然后重新启动服务器实例。

SQL Server TCP/IP port

现在,在 Windows 防火墙设置中为 TCP 端口 1433 添加新的防火墙规则。转到“控制面板”-->“Windows 防火墙”--> 点击“高级设置”。快捷方式为“开始”-->“运行”-->wf.msc

ws.msc

在“入站规则”部分,单击“新建规则”链接,然后选择“端口”作为规则类型。

New Rule

Rule Type

在“协议和端口”中,选择 TCP 并将端口号输入为 1433。

Select Protocol

在“操作”和“配置文件”部分保留默认设置,最后为新规则输入名称并完成向导。

rule name

第三步:将本地计算机添加到 Azure Connect

注意:目前此功能仅作为 beta 项目“Windows Azure connect”的一部分提供;我们需要申请此功能以获得批准。

使用拥有订阅的 Windows Live ID 登录 Windows Azure 门户 https://windows.azure.com,然后在“虚拟网络”部分,选择订阅 ID,然后单击顶部菜单中的“安装本地终结点”(Install Local Endpoint)按钮。

Install Local Endpoint

在弹出的屏幕上,将 URL 复制到剪贴板,然后粘贴到新的网页浏览器窗口中。它将开始安装软件。

Copy the URL

Install Local Endpoint software

成功安装后,我们可以在 Windows 任务栏中看到一个名为“Windows Azure Connect”的图标。

Windows Azure Connect icon from taskbar

在 Azure 门户中验证已激活的终结点。

Verify activated endpoints

第四步:创建一个带有 Web 角色的云项目,并添加用于 SQL Server 连接测试的代码

使用 Visual Studio 2010 创建一个云项目,并添加一些用于本地 SQL Server 连接的代码。在这里,我们可以在 Default.aspx 页面上使用 Gridview 控件显示数据。为了方便起见,我们将连接字符串和查询直接添加到代码中。

Cloud project solution

Default.aspx.cs:

    // Data Source=ServerName\SQLExpress, 1433;
    // Here Raj-PC is the server name

    string cnstr = "Data Source=Raj-PC, 1433;Initial Catalog=rsdb;
	Persist Security Info=True;User Id=sa;Password=mypassword;
	MultipleActiveResultSets=True;";


     SqlConnection cn = new SqlConnection(cnstr);
               
     SqlCommand cmd = new SqlCommand("select empno, ename from emp", cn);

     cn.Open();
     SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);

     grdView.DataSource = dr;
     grdView.DataBind();

...

第五步:向 Azure Connect 添加角色

在 Azure 门户中,单击“组和角色”(Groups and Roles)的“获取激活令牌”(Get Activation Token),然后将令牌复制到剪贴板。

Get Activation Token

Copy the token to clipboard

返回到 Visual Studio 云项目,选择 WebRole1 属性。在“虚拟网络”选项卡中,粘贴上面复制的激活令牌。

Cloud project solution explorer

Webrole1 properties

第六步:发布项目

将云项目发布到 Azure 平台,并在 Connect Azure 下验证创建的 WebRole1 实例。这可以通过创建项目包并在 Azure 门户的托管服务(hosted services)下进行部署来完成。有关如何发布云项目的详细信息,请参阅任何相关文章,例如:创建和部署 Windows Azure 应用程序

Webrole1 Instance verification

第七步:建立连接组

选择 Azure Connect 的“组和角色”(Groups and Roles),然后单击顶部菜单中的“创建组”(Create Group)按钮。

Create Group

在弹出的屏幕上,输入组名,然后选择“终结点”(Endpoint)和“Azure 角色”(Azure Role),最后单击“完成”按钮。

Select Endpoint and Role

Success Status of Connect Group

现在,我们可以在 Azure 门户中 webrole1 下看到已创建的连接组。我们还可以验证任务栏中“Windows Azure Connect”图标的状态。

Connect group

Success Status of Azure connect

第八步:使用 Azure 角色实例测试 Azure 本地 SQL Server 连接

从 Azure 门户复制已发布的云项目 DNS URL,然后运行应用程序。

Display data from web page

参考

参考 MSDN 文章:MSDN

历史

  • 2011 年 9 月 27 日:初稿
© . All rights reserved.