Publish ứng dụng ASP.NET Core SignalR lên Azure App Service
Bởi Brady Gaster
Azure App Service là dịch vụ nền tảng điện toán đám mây (cloud computing) của Microsoft để lưu trữ các ứng dụng web, bao gồm ASP.NET Core.
Lưu ý: Bài viết này đề cập đến việc publish ứng dụng ASP.NET Core SignalR từ Visual Studio. Để biết thêm thông tin, xem SignalR service for Azure.
Publish ứng dụng
Bài viết này đề cập đến việc publish bằng các công cụ trong Visual Studio. Người dùng Visual Studio Code có thể sử dụng các lệnh Azure CLI để publish ứng dụng lên Azure. Để biết thêm thông tin, xem Publish an ASP.NET Core app to Azure with command line tools.
- Nhấp chuột phải vào project trong Solution Explorer và chọn Publish.
- Xác nhận App Service và Create new được chọn trong hộp thoại Pick a publish target.
- Chọn Create Profile từ danh sách thả xuống của nút Publish.
Nhập thông tin được mô tả trong bảng sau vào hộp thoại Create App Service và chọn Create.
| Mục | Mô tả |
|---|---|
| Name | Tên duy nhất của ứng dụng. |
| Subscription | Azure subscription mà ứng dụng sử dụng. |
| Resource Group | Nhóm tài nguyên liên quan mà ứng dụng thuộc về. |
| Hosting Plan | Gói giá cho ứng dụng web. |
- Chọn Azure SignalR Service trong phần Service Dependencies. Chọn nút +:
!Khu vực Dependencies hiển thị lựa chọn Azure SignalR Service trong danh sách Add
- Trong hộp thoại Azure SignalR Service, chọn Create a new Azure SignalR Service instance.
- Cung cấp Name, Resource Group và Location. Quay lại hộp thoại Azure SignalR Service và chọn Add.
Visual Studio hoàn thành các tác vụ sau:
- Tạo Publish Profile chứa cài đặt publish.
- Tạo Azure Web App với các thông tin được cung cấp.
- Publish ứng dụng.
- Khởi chạy trình duyệt, tải ứng dụng web.
Định dạng URL của ứng dụng là {TÊN APP SERVICE}.azurewebsites.net. Ví dụ, ứng dụng tên SignalRChatApp có URL là https://signalrchatapp.azurewebsites.net.
Nếu xảy ra lỗi HTTP 502.2 - Bad Gateway khi triển khai ứng dụng nhắm vào phiên bản .NET preview, xem Deploy ASP.NET Core preview release to Azure App Service để giải quyết.
Cấu hình ứng dụng trong Azure App Service
Lưu ý: Phần này chỉ áp dụng cho các ứng dụng không sử dụng Azure SignalR Service.
Nếu ứng dụng sử dụng Azure SignalR Service, App Service không cần cấu hình WebSockets và session affinity (còn gọi là Application Request Routing - ARR affinity) được mô tả trong phần này. Client kết nối WebSockets của họ đến Azure SignalR Service, không phải trực tiếp đến ứng dụng.
Đối với các ứng dụng được lưu trữ mà không có Azure SignalR Service, hãy bật:
- WebSockets để cho phép WebSockets transport hoạt động. Cài đặt mặc định là Off.
- Session affinity (ARR affinity) để định tuyến yêu cầu từ người dùng về cùng một phiên bản App Service. Cài đặt mặc định là On.
- Trong Azure portal, điều hướng đến ứng dụng web trong App Services.
- Mở Settings > Configuration.
- Đặt Web sockets thành On.
- Xác minh Session affinity được đặt thành On.
Giới hạn App Service Plan
WebSockets và các transport khác bị giới hạn dựa trên App Service Plan được chọn. Để biết thêm thông tin, xem các phần Azure Cloud Services limits và App Service limits của bài viết Azure subscription and service limits, quotas, and constraints.