网络可靠性
运行你客户端代码的机器与SQL Azure服务器之间的所有网络组件的质量都在微软的控制范围之外,互联网上的任何原因都可能导致你的会话连接断开,在Windows Azure中运行应用程序时,连接丢失的风险会大大降低,因为应用程序和数据库之间的距离减少了,有可能它们都在同一个数据中心。
因网络问题致使会话连接断开时,SQL Azure不能给应用程序返回一个有意义的错误,因为会话已经终止了,但是,当重新使用这个连接时,你将获得一个10053错误。
连接重试
如果你在本地局域网内连接到单个SQL Server服务器,当它失效或进行例行停机维护时,你的应用程序将永久断开,但如果你不止一台SQL Server服务器,并且应用程序代码做了修改,当主服务器不可用时,应用程序就自动连接到备用服务器,这时只需很短暂的断开时间,SQL Azure的行为和一个具有冗余功能的SQL Server集群类似,SQL Azure Fabric管理系统中每个节点的健康状态,它要么通知节点的状态不健康,要么是节点已准备好脱机,Fabric将会自动将你的会话重新连接到另一个节点的副本数据库上。
目前有些故障转移行为会导致会话意外终止,而客户端会接收到一个普通的网络断开错误,这种情况下最好的做法是重新连接,SQL Azure会自动将你连接到一个健康的数据库。客户和合作伙伴在三年时间内,可实现有些工作负荷的总运营成本下降达 30% 至 40% 之多。按使用量定价、套餐和合作伙伴折扣降低了采用云服务的门槛并确保 IT 支出的可预测性。Microsoft 的数据中心可向组织提供与成百上千台的服务器等效的计算能力。现在,您无需购买新硬件,只需添加您所需的资源并支付使用费即可。通过减少您的环境中物理服务器的数量,可以削减其他成本,例如,电费、制冷费以及物理硬件所需的日常维护费。这样,IT 人员可以腾出精力来专注于软件,因为他们认识到,只需简单地像现在这样运行并维护应用程序,几分钟之内即可提高吞吐量性能。当需要提高环境中某些应用程序的性能以满足新需求时,这通常意味着要投资新服务器或者执行性能调优工作,这二者都会带来成本增加。相比添加新硬件和软件来说,通过将这些应用程序移动到 Windows Azure,提供了一种在降低成本的同时扩展这些应用程序并提高吞吐量的途径。若要利用此云计算方案,您需要对从内部部署系统转换云应用程序做一些规划。此页上的资源提供了可帮助执行此过程的信息和工具。 Windows Azure 简介(白皮书)David Chappell 解释了 Windows Azure 的体系结构以及如何在平台上规划和实现应用程序。 Windows Azure 平台简介(白皮书)Dave Chappell 提供了概要说明,详细介绍了相关技术,并展望了未来的发展。 MSDN 虚拟实验室:将应用程序迁移到 Windows Azure亲身体验 Azure SDK,以了解 ASPNET 会话管理并考虑对 Azure 应用程序可用的各种存储方法。 Azure TCO 和 ROI 计算器为您的组织确定 Azure 服务成本。相关产品
国内的WindowsAzure很快就要正式商用了,许多小伙伴们也有计划把现有的网站迁移到WindowsAzure上去。但是国内相关的中文文档还是比较缺乏的,所以今天我就写了个超详细教程来教大家如何把ASPNET网站部署到WindowsAzure上。demo用的网站是带有数据库的,并且最后还会演示如何绑定一个com域名到网站上。
我写的内容基本都是在Channel9上看来的,并且自己亲自实践过许多次的。大家现在阅读的这个博客就是用同样的方法部署到WindowsAzure上的。所以不必担心文章坑爹。我的博客不像国内的许多网站那样,发表的内容都没自己测过,非常没有责任心。
下面进入正题。
1部署数据库
首先,假设我们的网站已经开发好了。这是一个带有一个SQLServer数据库的ASPNET网站。第一步我们要做的,是把数据库部署到WindowsAzure上去。
你需要的工具:SQLServer2012ManagementStudio。注意,仅仅要求SSMS为2012版,你的数据库引擎版本没有限制。
11在WindowsAzure上创建一个数据库服务器
在SQLDATABASES页面中,点击SERVERS选项卡进入SQL服务器列表页面。这里我已经有个服务器了,但是我还是教大家怎么创建一个新的。
12点击页面最下方工具栏上的ADD按钮
13在d出的对话框中输入SQL服务器的用户名和密码
REGION选择ChinaNorth,这是有原因的,为了省钱,稍后会解释。最下面的勾“ALLOWWINDOWSAZURESERVICESTOACCESSTHESERVER”一定要勾选,意思是允许你Azure上其他服务访问这个数据库,而不用给他们一个个在防火墙中指定IP地址。我们稍后要创建的网站也属于“AZURESERVICES”的范畴,所以一定要勾选这个选项。
14大约4秒后,数据库创建完成。
服务器的名字是Azure随机分配的,不能改。这里我们的服务器叫yfb2xnprey
15接下来,在CONFIGURE选项卡中,我们要把自己当前的IP地址加到防火墙规则里。
这仅仅是为了迁移数据库使用一次。用完以后为了安全建议大家删掉这个IP。IP地址支持单个的,也支持地址段,大家可以根据自己需要设置。
16接下来,我们就要迁移数据库了。
打开SSMS2012,按图中的格式填写服务器名称和你之前设置的用户名、密码。注意,用户名后面一定要有一个“@服务器名称”!
17成功连接到SQLAzure服务器
因为是刚刚创建的新服务器,所以里面一个数据库都木有。
18接下来,用SSMS直接向Azure迁移数据库。
连接到你本地服务器。在你要迁移的数据库上点右键,选择Tasks-DeployDatabasetoSQLAzure
在向导中再次点击Connect按钮,连接到SQLAzure服务器。然后输入新数据库的名称。“EditionofSQLAzure”根据自己需要选择,一般小型网站选择Web,1GB是最省钱的。然后点击Next开始部署。
部署完成后你能看到成功的结果
现在,回到WindowsAzure管理平台中,也能够看见迁移后数据库了。
19准备新的连接字符串
点击刚才创建的“Infodiaos”数据库,打开数据库管理页面,然后点击“ViewSQLDatabaseconnectionstrings”
在d出的窗口中,复制ADONET的连接字符串。
接下来,在你的ASPNET项目里,打开WebReleaseConfig文件。如图所示,把connectionStrings节点根据自己网站的配置还掉。这个WebReleaseConfig文件里的配置会在用“Release”模式编译网站的时候自动把最终的webconfig换掉。“xdt:Transform="Replace"”的意思是在编译网站时候把connectionStrings节点整个换掉。
至此,数据库部分就搞定了。
2部署网站
21在WindowsAzure上创建新网站
在WindowsAzure管理平台最下方的工具栏上,点击"New"
选择Compute,Website,CustomCreate。这是为了防止QUICKCREATE把我们不想要的设置默认撸进去。
在d出的对话框中,输入网站在azure里的二级域名。如果文本框旁边出现绿色的对勾,就表示这个域名是可以用的。当然,这不是我们最终的域名。稍后会教大家绑定自己的域名上去。
REGION里面,要选择ChinaNorth,也就是要和数据库在同一个地理位置,这样的话,同一个数据中心里的传输是不计费的。那为什么刚才数据库一定要选ChinaNorth而不是ChinaEast呢?因为目前中国的网站服务TMD只能选North
DATABASE里面啥都不要选,我们稍后要手动搞这部分。
网站创建完成后,在websites的列表里就能看见正在运行的空站点了。目前是Free模式的,这个是相当有限制的模式,不能绑定域名,稍后我们会更改。
22将数据库链接到网站
为了方便管理,我们通常将数据库链接到网站中。注意,这里的链接仅仅是对于Azure管理平台来说的,并不是程序里的数据库连接。
切换到LINKEDRESOURCES页面,点击“LINKARESOURCE”。
然后选择“LinkanExistingResource”
选择“SQLDatabase”
选择我们的数据库,并且确认用户名和密码
完成连接后,应该能看到数据库已经被成功挂在网站下了。
23从VisualStudio部署网站
最方便的部署方式是通过VisualStudio,直接WebDeploy到服务器上。当然,你也可以手动拷贝文件到Azure提供的FTP上。不过我这里只演示WebDeploy。FTP大家可以自己开荒。
在网站的DASHBOARD右侧,点击“Downloadthepublishprofile”。下载VS用的发布文件。
然后回到VisualStudio,在网站项目上点击右键,选择“Publish”,然后导入刚才下载的Profile文件。
之后,点击“ValidateConnection”验证配置是否正确。如果正确,会看见一个绿色的√。
然后在Settings页面里,选择“Release”模式,这样才会把之前在WebReleaseConfig里配置的连接字符串换进去。
同时,建议勾选“Removeadditionalfilesatdestination”,这样会删除Azure默认网站的文件,完全干净的部署我们的网站。
最后,确认发布的文件后,点击“Publish”发布网站。发布完成后,VS会自动打开目标网站的地址。这是Azure免费网站的二级域名。我们马上要把它换成自己的域名。
24绑定域名
如果你自己申请了域名(cn垃圾域名除外),可以很方便的和AzureWebsite绑定。
首先,Free模式的网站是不支持自定义域名的,所以我们要在SCALE里把网站设置成"SHARED"或“STANDARD”,当然,这两种就要收费了。
之后,在CONFIGURE选项卡中,你就能看到绑定域名的地方了。
点击“managedomains”。
同时,我们要在域名的DNS设置里加两个CNAME记录。这个因人而异,我是DNSPOD的域名解析,
等待DNS记录生效后,切回到WindowsAzure的管理界面就可以完成添加了。
绑定后的网站就是这样了,可以使用自己的域名,看上去非常的牛逼,而且国际域名不用备案哦。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)