上一篇文章《天空象棋——冲上云霄》介绍了如何把天空象棋的算法服务发布到Azure上,以及提供了一个使用该云服务的象棋客户端。这次的任务是为天空象棋在Azure上创建一个网站,并且提供用户注册、登陆的功能。涉及以下知识点:
- 在Azure上创建网站
- 使用Visual Studio发布自定义网站
- 使用SQL Server Management Studio连接Azure数据库服务器
- 为网站提供Membership服务
创建天空象棋网站
登陆Azure管理网站,依次点击“+NEW”,“COMPUTE”,“WEB SITE”,“CUSTOM CREATE”菜单。在弹出的网站设置界面中,URL输入skychess,REGION选择East Asia。然后点击CREATE WEBSITE,几分钟内一个网站就建好了。
访问新创建的网站“http://skychess.azurewebsites.net/”,只有一些预置的提示信息。
Azure网站的工作模式有免费、共享、基础和标准四种。可在网站的“SCALE”设置页查看工作模式。当前WEB HOLSTING PLAN MODE为“FREE”,即免费模式。
四种模式的特点简单描述如下:
- 共享模式:Azure维护了一个虚拟机资源池,所有共享模式的网站都被部署在资源池的虚拟机上,同一台虚拟机可能被多个用户共享使用。共享模式有CPU使用限制,每天不能超过240分钟。该模式价格便宜。
- 免费模式:免费的共享模式。每个Azure订阅限10个免费模式的网站,并且网站流量每天不能超过165MB,CPU使用时间每天不能超过60分钟。
- 基本模式:可配置实例大小和实例数量。
- 标准模式:可配置自动伸缩。
除了以上CPU、实例、流量的区别,还有自定义域名、SSL、存储、数据库等区别,可参考Azure官方文档。
使用Visual Studio发布天空象棋
使用Visual Studio 2013 Update 4创建一个普通的“ASP.NET Web Forms Application”网站,修改一下网站标题等文字内容。
在skychess的“DASHBOARD”管理页面,点击“Download the publish profile”链接,下载发布配置文件。
在Visual Studio中选择发布网站,在“发布网页”窗口中点击“导入”并选择刚才下载的发布配置文件。
导入配置文件后可查看配置信息,直接点击“发布”按钮后即可发布完成。在自动弹出的浏览器窗口中可看到网站首页,发布成功。
如果现在点击“注册”或“登陆”,网站会报错,因为还没有配置Membership数据库。
使用SQL Server Management Studio连接Azure数据库服务器
先到“SQL DATABASES –> SERVERS”页面,通过向导创建一个数据库服务器。为了能使用SQL Server Management Studio连接该Azure数据库服务器,需要为该服务器设置防火墙。
进入数据库服务器的“CONFIGURE”页面,可以看到当前客户端的IP地址。点击“ADD TO THE ALLOWED IP ADDRESSES”可快速把该IP地址加入允许的IP地址列表。
打开SQL Server Management Studio(2012 SP2),打开连接到服务器窗口。其中,
- 服务器名称为“servername.database.windows.net”,servername即创建SQL DATABASE SERVER时随机生成的一串由随机数字或字母组成的服务器名称
- 登录名为“[email protected]”,username为创建服务器时设定的管理员用户名
- 密码为创建服务器时设定的管理员密码
点击“连接”按钮后有时会报错,基本信息为某IP地址未加入允许的IP地址列表。虽然前面已经通过配置页面添加了允许的IP地址,但是可能由于代理等原因,配置页面上显示的IP地址未必是客户端最终访问Azure的IP地址。碰到这种情况只需将所提示的IP地址添加到允许访问列表即可。
连接成功后就可以用大家熟悉的SQL Server Management Studio操作SQL Azure数据库。
为网站提供Membership服务
ASP.Net Membership服务是基于一个默认名为aspnetdb的SQL数据库。在以往大家可以用aspnet_regsql.exe创建。由于传统的一些SQL脚本在Azure SQL上并不全部兼容,所以需要使用特定的脚本或工具创建在Azure上使用的Membership服务数据库。
访问http://support.microsoft.com/kb/2006191可找到更多的相关信息和下载初始化SQL Azure Membership数据库的SQL脚本。
下载后先运行InstallAzure.sql创建一个空的aspnetdb数据库。然后选择该新建的数据库,再依次运行InstallCommon.sql和InstallMembership.sql脚本。运行完毕后可在aspnetdb数据库中查看脚本创建的表、视图和存储过程等。
回到Visual Studio进行网站发布,在DefaultConnection中填入aspnetdb的连接字符串,重新发布。
在网站上尝试注册和登陆,网站工作正常。