Windows Azure Cloud Service (39) 如何将现有Web应用迁移到Azure PaaS平台

简介:

  《Windows Azure Platform 系列文章目录

 

  本文将简单介绍,如何将企业内现有的ASP.NET应用程序迁移到Azure PaaS平台。

  因为在迁移过程中,可能需要对现有的应用重新做架构设计,本文只是进行简单的介绍,开拓思路,具体的应用需要具体研究分析。

 

  1.首先需要下载Azure SDK。使用Visual Studio创建新的Cloud Service,将现有的ASP.NET应用程序页面包含在Cloud Project中。

 

  2.对于用户会话(Session)进行修改。

  Cloud Service的负载均衡器(Load Balancer)不能保留Session。我们需要将Session保存到SQL Server或者其他外置的存储介质上。

  具体可以参考我之前的博文:Windows Azure Cloud Service (13) 多个VM Instance场景下如何处理ASP.NET Session

  里面的内容有些过时了,总结下来可以有以下几种方式实现保持会话(Sticky-Session)

  (1)将Session保存在SQL Server Table中,后期对于数据表的维护,需要用户自己来实现相关的业务逻辑。

  (2)将Session保存在Cache中。比如Cloud Service的In-bound Cache,或者是海外Azure的Redis Cache

 

  3.将需要调用的dll包含在Cloud Project中,并且将属性中的"Copy to Output Directory"设置成"Copy always"。

  这样,需要被调用的dll会被直接打包到CSPKG中,在部署的时候上传到Azure云端进行调用。

 

  4.将需要安装的第三方软件,包含在Cloud Project中,并且将属性中的"Copy to Output Directory"设置成"Copy always"。

  在ServiceDefinition节点里添加Startup任务,CMD文件中执行"静默"安装。

  Azure PaaS平台是非持久化VM,任何通过远程桌面安装的软件都是无效的。我们需要将第三方软件包含在Cloud Project中,在部署的时候上传到Azure云端。

  Startup的功能是,在每次PaaS VM被重置的时候,执行CMD命令,将第三方软件在新创建的PaaS VM进行安装。

  "静默"安装的目的是,直接安装完毕,不需要进行任何的配置。

   具体可以参考之前的博文:Windows Azure Cloud Service (22) 使用Startup注册COM组件(上)

 

  5.将文件的上传下载保存在Azure Storage中

  一般情况下,客户端将文件从本地上传至服务器端后,文件是保存在服务器端的本地磁盘里的。

  但是Azure PaaS是非持久化的VM,任何保存在本地磁盘的文件都会有丢失的风险。我们需要将服务器的文件读写的API修改为对于Azure Storage的操作,将文件保存在Azure Storage中。

 

  6.服务器端系统时间的修改

  一般情况下,服务器端的时区是UTC+8时区,显示的时间是北京时间。

  Azure PaaS的时区是UTC时区,如果我们在PaaS层调用系统时间,会与北京时间有差距。

  一般性有两种解决方案:

  (1)在StartUp任务中的CMD命令中,将当前PaaS VM的时区设置为UTC+8时区

  (2)在Azure Cloud Project中,将获得当前系统时间的代码修改为,获得当前UTC+8时区的时间

 

  7.将Cloud Project的web.config配置修改到Azure CSCFG和CSDEF中

  在传统的ASP.NET应用程序里,我们读取的配置文件一般都是放在Web.config,并且通过

  System.Configuration.ConfigurationSettings.AppSettings["SettingName"]来读取配置文件。

  在Windows Azure里,我们也可以将配置文件写入Web.config里。但是因为我们的Web App其实是Azure VM远程托管运行的,如果需要修改配置文件的话我们不得不远程登录桌面,然后再修改IIS下的Web.config文件。管理起来非常复杂。

  所以在一般情况下,Windows Azure项目的配置文件是写到CSCFG文件里的。然后通过RoleEnvironment.GetConfigurationSettingValue("cscfgName")来读取。

  这样我们就可以直接通过配置部署窗口进行修改,而不需要远程桌面修改站点的Web.config或者重新发布Azure站点了。

  具体可以参考:Windows Azure Cloud Service (9) Configuration的变更和通知机制

 

  8.将Web应用的业务逻辑拆分到Web Role或Worker Role中

  在传统的ASP.NET的应用程序里,前端显示和复杂逻辑都是包含在一个Web Applicatio中的。

  我们可以针对实际的应用情况,将前端显示逻辑放在Web Role,后端的负载业务处理放在Worker Role中。实现前端显示和业务逻辑的拆分。

 

 

  本博-三石Blog(下文简称本博),在本博客文章结尾处右下脚未注明转载、来源、出处的作品(内容)均为本博原创,本站对于原创作品内容对其保留版权, 请勿随意转载,如若真有需要的朋友可以发Mail联系我;转载本博原创作品(内容)也必须遵循“署名-非商业用途-保持一致”的创作共用协议,请务必以文 字链接的形式标明或保留文章原始出处和博客作者(Lei Zhang)的信息,关于本博摄影作品请务必注意保留(www.cnblog.com/threestone)等相关水印版权信息,否则视为侵犯原创版权 行为;本博谢绝商业网站转载。版权所有,禁止一切有违中华人民共和国著作权保护法及相关法律和本博(法律)声明的非法及恶意抄袭。


本文转自Lei Zhang博客园博客,原文链接:http://www.cnblogs.com/threestone/p/4169796.html,如需转载请自行联系原作者

目录
相关文章
|
18天前
|
XML C# 数据格式
掌握了在Windows平台上查看DLL依赖的方法
掌握了在Windows平台上查看DLL依赖的方法
121 4
|
24天前
|
存储 弹性计算 运维
阿里云国际Windows操作系统迁移教程
阿里云国际Windows操作系统迁移教程
|
2月前
|
监控 Windows
Windows平台RTSP|RTMP播放器如何实时调节音量
我们在做Windows平台RTSP、RTMP播放器的时候,有这样的技术需求,特别是多路监控的时候,并不是每一路audio都需要播放出来的,所以,这时候,需要有针对音量调节的设计
|
3月前
|
Linux C++ Windows
【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数
【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数
【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数
|
26天前
|
NoSQL Shell MongoDB
Windows 平台安装 MongoDB
10月更文挑战第10天
37 0
Windows 平台安装 MongoDB
|
2月前
|
监控 C# 块存储
Windows平台RTSP|RTMP播放器如何叠加OSD文字
做Windows平台RTSP|RTMP播放器的时候,特别是多路播放场景下,开发者希望可以给每一路RTSP或RTMP流添加个额外的OSD台标,以区分不同的设备信息(比如添加摄像头所在位置),本文主要探讨,如何动态添加OSD台标。
Windows平台RTSP|RTMP播放器如何叠加OSD文字
|
22天前
|
XML 缓存 前端开发
Electron-builder 是如何打包 Windows 应用的?
本文首发于微信公众号“前端徐徐”,作者徐徐深入解析了 electron-builder 在 Windows 平台上的打包流程。文章详细介绍了 `winPackager.ts`、`AppxTarget.ts`、`MsiTarget.ts` 和 `NsisTarget.ts` 等核心文件,涵盖了目标创建、图标处理、代码签名、资源编辑、应用签名、性能优化等内容,并分别讲解了 AppX/MSIX、MSI 和 NSIS 安装程序的生成过程。通过这些内容,读者可以更好地理解和使用 electron-builder 进行 Windows 应用的打包和发布。
88 0
|
2月前
|
Linux Android开发 iOS开发
Windows平台RTSP|RTMP播放器如何实现实时录像功能
Windows平台RTSP、RTMP播放器实时录像接口设计,实际上,除了Windows平台,我们Linux、Android、iOS平台也是一样的设计,单纯的录像模块,如果做的全面,也不是一两个接口可以搞定的
|
1月前
|
数据可视化 程序员 C#
C#中windows应用窗体程序的输入输出方法实例
C#中windows应用窗体程序的输入输出方法实例
40 0
|
1月前
|
并行计算 开发工具 异构计算
在Windows平台使用源码编译和安装PyTorch3D指定版本
【10月更文挑战第6天】在 Windows 平台上,编译和安装指定版本的 PyTorch3D 需要先安装 Python、Visual Studio Build Tools 和 CUDA(如有需要),然后通过 Git 获取源码。建议创建虚拟环境以隔离依赖,并使用 `pip` 安装所需库。最后,在源码目录下运行 `python setup.py install` 进行编译和安装。完成后即可在 Python 中导入 PyTorch3D 使用。
141 0
下一篇
无影云桌面