将 ASP.NET Core SignalR 应用发布到 Azure 应用服务
作者:Brady Gaster
Azure 应用服务是一个用于托管 Web 应用(包括 ASP.NET Core)的 Microsoft 云计算平台服务。
注意
本文介绍如何从 Visual Studio 发布 ASP.NET Core SignalR 应用。 有关详细信息,请参阅 SignalRAzure 服务。
发布应用
本文介绍如何使用 Visual Studio 中的工具进行发布。 Visual Studio Code 用户可以使用 Azure CLI 命令将应用发布到 Azure。 有关详细信息,请参阅使用命令行工具将 ASP.NET Core 应用发布到 Azure。
在“解决方案资源管理器”中右键单击该项目,然后选择“发布”。
确认在“选取发布目标”对话框中选中了“应用服务”和“新建”。
从“发布”按钮下拉菜单中选择“创建配置文件”。
在“创建应用服务”对话框中输入下表所述的信息,然后选择“创建”。
项 说明 名称 应用的唯一名称。 订阅 应用使用的 Azure 订阅。 资源组 应用所属的相关资源组。 托管计划 Web 应用的定价计划。 在“服务依赖项”部分中选择“Azure SignalR Service”。 选择 + 按钮:
在“Azure SignalR 服务”对话框中,选择“创建新的 Azure SignalR 服务实例”。
提供“名称”、“资源组”和“位置”。 返回到“Azure SignalR 服务”对话框并选择“添加”。
Visual Studio 完成以下任务:
- 创建包含发布设置的发布配置文件。
- 使用提供的详细信息创建 Azure Web 应用。
- 发布应用。
- 启动浏览器,该浏览器会加载 Web 应用。
应用 URL 的格式为 {APP SERVICE NAME}.azurewebsites.net
。 例如,名为 SignalRChatApp
的应用的 URL 为 https://signalrchatapp.azurewebsites.net
。
如果在部署面向 .NET Core 预览版的应用时出现“HTTP 502.2 - 错误的网关”错误,请参阅将 ASP.NET Core 预览版部署到 Azure 应用服务以解决该错误。
在 Azure 应用服务中配置应用
注意
本部分仅适用于未使用 Azure SignalR 服务的应用。
如果应用使用 Azure SignalR 服务,则应用服务不需要配置如本部分所述的 WebSocket 和会话相关性,也称为应用程序请求路由 (ARR) 相关性。 客户端将其 WebSocket 连接到 Azure SignalR 服务,而不是直接连接到应用。
对于未使用 Azure SignalR 服务托管的应用,请启用:
- WebSocket 以允许 WebSocket 传输正常工作。 默认设置为“关”。
- 会话相关性(ARR 相关性),用于将用户的请求路由回同一个应用服务实例。 默认设置为“开”。
- 在 Azure 门户中,导航到“应用服务”中的 Web 应用。
- 打开“设置”>“配置”。
- 将“Web 套接字”设置为“开”。
- 验证“会话相关性”是否设置为“开启”。
应用服务计划限制
WebSocket 和其他传输受所选应用服务计划的限制。 有关详细信息,请参阅 Azure 订阅和服务限制、配额和约束一文的“Azure 云服务限制”和“应用服务限制”部分。