將 ASP.NET Core SignalR 應用程式發佈至 Azure App Service
作者:Brady Gaster
Azure App Service 是 Microsoft 雲端運算平台服務,用於裝載 Web 應用程式,包括 ASP.NET Core。
注意
本文涉及從 Visual Studio 發佈 ASP.NET Core SignalR 應用程式。 如需詳細資訊,請參閱 Azure 的 SignalR 服務。
發行應用程式
本文介紹使用 Visual Studio 中的工具進行發佈。 Visual Studio Code 使用者可以使用 Azure CLI 命令將應用程式發佈至 Azure。 如需詳細資訊,請參閱使用命令列工具將 ASP.NET Core 應用程式發佈至 Azure。
在 [方案總管] 中,以滑鼠右鍵按一下專案,然後選取 [發佈]。
確認已在 [挑選發佈目標] 對話方塊中選取 [App Service] 和 [新建]。
從 [發佈] 按鈕下拉式清單中選取 [建立設定檔]。
在 [建立 App Service ] 對話方塊中,輸入下表中所述的資訊,然後選取 [建立]。
項目 描述 名稱 應用程式的唯一名稱。 訂用帳戶 應用程式使用的 Azure 訂閱。 資源群組 應用程式所屬的相關資源群組。 主控方案 Web 應用程式的定價方案。 在 [服務相依性] 區段中選取 [Azure SignalR 服務]。 選取 + 按鈕:
在 [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 App Service>以解決此問題。
在 Azure App Service 中設定應用程式
注意
本節僅適用於不使用 Azure SignalR 服務的應用程式。
如果應用程式使用 Azure SignalR 服務,App Service 就不需要設定如本章節所述的 WebSockets 以及工作階段親和性,也稱為應用程式要求路由 (ARR) 親和性。 用戶端會將其 WebSocket 直接連線至 Azure SignalR 服務,而不是直接連線至應用程式 。
針對未使用 Azure SignalR 服務裝載的應用程式,請啟用:
- Web Sockets ,以允許 WebSockets 傳輸運作。 預設設定是 Off。
- 工作階段親和性(ARR 親和性) ,將要求從使用者路由回相同的 App Service 執行個體。 預設設定是 On。
- 在 Azure 入口網站中,瀏覽至 [應用程式服務] 中的 Web 應用程式。
- 開啟 設定>設定。
- 將 [Web 通訊端] 設定為 On。
- 確認 工作階段親和性 已設定為 開啟。
App Service 方案限制
根據選取的 App Service 方案,WebSockets 與其他傳輸會受到限制。 如需詳細資訊,請參閱《Azure 訂閱和服務限制、配額和限制》一文的<Azure 雲端服務限制>和<App Service 限制>章節。