应用服务 是一项完全托管的计算平台服务,已针对托管可缩放的网站和 Web 应用程序进行优化。 本文介绍如何将现有应用程序直接迁移到 Azure 应用服务、要考虑的修改以及 迁移到云的其他资源。 大多数 ASP.NET 网站(Webforms、MVC)和服务(Web API、WCF)可以直接移动到 Azure 应用服务,无需更改。 有些可能需要细微的更改,而另一些可能需要一些重构。
准备好开始了吗? 将 ASP.NET + SQL 应用程序发布到 Azure 应用服务。
注意事项
本地资源(包括 SQL Server)
验证对本地资源的访问权限,因为这些资源可能需要迁移或更改。 下面是用于缓解对本地资源的访问的选项:
- 使用 Azure 虚拟网络创建将应用服务连接到本地资源的 VPN。
- 使用 Azure 中继安全地向云公开本地服务,而无需更改防火墙。
- 将依赖项(如 SQL 数据库 )迁移到 Azure。
- 使用云中的平台即服务解决方案来减少依赖项。 例如,请考虑使用 SendGrid,而不是连接到本地邮件服务器。
端口绑定
Azure 应用服务支持用于 HTTP 的端口 80,支持用于 HTTPS 流量的端口 443。
对于 WCF,支持以下绑定:
| 捆绑 | 注释 |
|---|---|
BasicHttp |
|
WSHttp |
|
WSDualHttpBinding |
必须启用 Web 套接字支持。 |
NetHttpBinding |
必须为双工协定启用 Web 套接字支持。 |
NetHttpsBinding |
必须为双工协定启用 Web 套接字支持。 |
BasicHttpContextBinding |
|
WebHttpBinding |
|
WSHttpContextBinding |
身份验证
Azure 应用服务默认支持匿名身份验证,并在需要时进行表单身份验证。 Windows 身份验证只能通过与 Azure Active Directory 和 ADFS 集成来使用。 详细了解如何将本地目录与 Azure Active Directory 集成。
GAC(全局程序集缓存)中的程序集
不支持。 请考虑将所需的程序集复制到应用的 \bin 文件夹。 不能使用服务器上安装的自定义 .msi 文件(例如 PDF 生成器)。
IIS 设置
以前在您的应用程序中通过 applicationHost.config 配置的所有内容现在都可以通过 Azure 门户进行配置。 这适用于 AppPool 位数、启用/禁用 WebSocket、托管管道版本、NET Framework 版本 (2.0/4.0),等等。 若要修改 应用程序设置,请导航到 Azure 门户,打开 Web 应用的边栏选项卡,然后选择 “应用程序设置 ”选项卡。
IIS5 兼容性模式
不支持 IIS5 兼容性模式。 在 Azure 应用服务中,每个 Web 应用及其下的所有应用程序都在同一工作进程中运行,并具有一组特定的 应用程序池。
IIS7+ 架构符合性
某些元素和属性未在 Azure 应用服务 IIS 架构中定义。 如果遇到问题,请考虑使用 XDT 转换。
每个站点的单个应用程序池
在 Azure 应用服务中,每个 Web 应用及其下的所有应用程序都在同一应用程序池中运行。 请考虑使用通用设置建立单个应用程序池,或为每个应用程序创建单独的 Web 应用。
COM 和 COM+ 组件
Azure 应用服务不允许在平台上注册 COM 组件。 如果应用使用任何 COM 组件,则需要在托管代码中重写这些组件,并使用站点或应用程序进行部署。
物理目录
Azure 应用服务不允许物理驱动器访问。 可能需要采用 Azure Files 通过 SMB 访问文件。 Azure Blob 存储 可以存储文件,以便通过 HTTPS 进行访问。
ISAPI 筛选器
Azure 应用服务可以支持使用 ISAPI 筛选器,但是,ISAPI DLL 必须部署到站点并通过 web.config注册。
HTTPS 绑定和 SSL
不会迁移 HTTPS 绑定,也不会迁移与网站关联的 SSL 证书。 但是,站点迁移完成后,可以手动上传 SSL 证书。
SharePoint 和 FrontPage
不支持 SharePoint 和 FrontPage 服务器扩展(FPSE)。
网站大小
免费网站的大小限制为 1 GB 的内容。 如果站点大于 1 GB,则必须升级到付费 SKU。 请参阅应用服务定价。
数据库大小
对于 SQL Server 数据库,请检查当前的 SQL 数据库定价。
Azure Active Directory (AAD) 集成
AAD 不适用于免费应用。 若要使用 AAD,必须升级应用 SKU。 请参阅应用服务定价。
监视和诊断
用于监视和诊断的当前本地解决方案不太可能在云中工作。 但是,Azure 提供了用于日志记录、监视和诊断的工具,以便识别和调试 Web 应用的问题。 可以在 Web 应用的配置中轻松启用诊断,并查看 Azure Application Insights 中记录的日志。 详细了解如何为 Web 应用启用诊断日志记录。
连接字符串和应用程序设置
请考虑使用 Azure KeyVault,该服务可安全地存储应用程序中使用的敏感信息。 或者,可以将此数据存储为应用服务设置。
DNS(域名系统)
可能需要根据应用程序的要求更新 DNS 配置。 可以在应用服务 自定义域设置中配置这些 DNS 设置。
使用 Windows 容器的 Azure 应用服务
如果应用无法直接迁移到应用服务,请考虑使用 Windows 容器的应用服务,这样就可以使用 GAC、COM 组件、MSIs、完全访问 .NET FX API、DirectX 等。