background image

Visual Studio 2010 中提供的转换工具将网站转换为应用程序吧。

  

2. ASP.NET 应用程序的 web.config 文件无法在 Web Role 中随意修改,请考虑将需要修

改的设置项放在

ServiceConfiguration.cscfg 中,以便可以使用 web 管理工具更改;或考虑在

数据库中存储部分应用的设置。

6 O: k2 ^7 E, `6 M% F- ^

  

3. 如果您的应用程序中涉及使用了 P/Invoke、WCF、>nET Services SDK、Named pipe 等

技术时,需要在

ServiceDefinition.csdef 中或者对应的 WebRole 的属性面板上 确保启用完全

信任模式。

9 J' M6 M! `. c8 P

 

 

4. 

ASP.NET

认 的

Cache 

API 实 现 不 支
持 跨

VM , 所

以 考 虑 使 用
AppFabric、M
emcached

类的产品来解
决缓存同步问
题。

% i: i8 u9 

I& ?/ G' N% c

   

5.  如 果

你的应用程序
会被大量用户使用,那么可能会需要将

Web Role 设置为 2 个以上的实例数,以便支持负载

均衡。那么此时,需要注意

ASP.NET 默认的 Session 实现是 In-Process 的无法跨越 VM,所

以需要考虑使用

SQL Azure 等来作为状态存储策略。

  

6. 涉及到 SMTP 发送邮件时,需要调用外部的 SMTP Server 来发送邮件,建议根据选

择的

Azure 所在数据中心区域选择相应区域的 SMTP Server,以保证相对性能。

  

7. 如果网站中涉及到文件系统的操作,请将相应代码使用 Windows Azure Storage 的相

API 实现,否则由于 Azure 中的 VM 的特殊机制会出现文件丢失的情况。当然了,最好我

们通过一个抽象一个接口的方式来隔离文件系统的操作实现差别,具体的实现大家可以参

“统一 Windows Azure 和一般 web 应用之间的文件操作代码”。

! X7 A$ F( ?$ }

  

8. COM 组件不受支持,所以如果你的网站用到了 COM 组件,请考虑使用其他解决方

案,或者将

COM 的功能在别处实现为一个 WCF Service 供该网站应用程序调用。

  

9. 如果你的网站原来使用的 SQL Server 作为数据存储方案,那么请不用担心代码的修

改,只需要将相应的数据库连接字符串做一下修改即可。但前提是,你已经使用

SQL Server 

2008 R2 的 SSMS/SSIS 或 SQL Azure Migration Wizard (on Codeplex)或 VS2010 的数据工具
将原始数据库移植到了

Sql Azure 中。

那么知晓上述问题并做了适当调整之后,接下来我们该如何将现有的网站项目添加为
WebRole 呢?您可以按照下面的步骤处理:

  C. v: C, y5 C. b

   

1.  首 先 , 打 开 Visual  Studio  2010 , 选 择 创 建 新 项 目 , 项 目 模 板 选 择 Cloud 类 中

Windows Azure Project,