与其考虑Azure中可支持的内容,在您决定移植应用时,考虑其挑战可能会更有帮助:
- Web应用程序。由于Web角色托管IIS,因此通常很少会将通用的asp.net或asp.net mvc网站移植到Azure。您会遇到一些问题 - 请参阅我的related answer了解更多详情。
- UI。如果您的应用具有类似于WinForms应用的特定输出,则由于您没有视频输出,因此无法运行它。
- GPU依赖项。如果您根据特定GPU进行后台处理,则无法在Azure VM中运行。
- 注册表和其他系统级访问。如果您的应用需要更新注册表或运行MSI,您将无法安装您的应用。
- 实例关联。如果您的应用需要会话粘性(例如,登录用户必须在每次访问时访问同一服务器实例),您将无法完成此操作。
- COM互操作。 COM互操作非常有限,因为您无法通过注册表安装任何东西。如果您依赖Excel Services,则不具备该功能。
- SQL限制。 SQL Azure目前仅限于50GB,并且无法自定义服务器实例。此外,虽然它确实支持SQL Server的一个重要子集,但它不支持100%的SQL Server,因此您的某些sprocs可能不再起作用。今天没有SQL代理,因此您需要在工作进程中重新创建该功能。
这只是你可能遇到的一些挑战的快速描述 - 我相信还有其他挑战。
请记住,Azure正在为您的应用提供运行的Windows 2008 Server映像,因此,如果您的应用程序今天可以在该环境中运行,并且不需要我列出的内容,那么您应该处于良好的状态。
您可以使大多数.NET项目在Azure中运行。 Azure支持以下项目类型:Web站点(ASP.NET和ASP.NET MVC),worker(后台应用程序)和wcf服务。
不要忘记安全性 - 有多种方法可以在Azure上进行身份验证,但没有一种方法可以像将IIS / ASP设置为Windows身份验证一样简单。