簡體   English   中英

是否可以在 Blazor WebAssembly 應用程序中的同一服務器上托管兩個(多個)客戶端

[英]Is it possible to have two (multiple) clients hosted on the same server in a Blazor WebAssembly app

我創建了一個名為“BlazorWebApp”的 Blazor WebAssembly 應用程序,並選中了“ASP.NET Core 托管”復選框。 現在,我可以添加另一個客戶端應用程序來訪問同一服務器嗎? 我嘗試添加另一個名為 Client2 的 Blazor WebAssembly 並取消選中“核心托管”框,但現在它不起作用,顯示一個空的瀏覽器。 我想知道如何將服務器設置為 select 將在構建后顯示的客戶端以及新添加的客戶端需要與服務器進行通信的哪些更改。 我在這里找到了這個鏈接,但它只解決了沖突錯誤。

這是極有可能的。 Blazor 網站本身並不是真正的網站,而是單頁應用程序。 web 站點只是啟動平台,因此您可以從同一個主機站點運行任意數量的站點。 讓它工作的訣竅在於配置。 如何做到這一點的詳細解釋太多了,無法在這里給出答案,所以我在下面提供了鏈接:

  1. 一個名為 Hydra 的演示站點,它運行一整套服務器和 WASM SPA Mongrel(狗)部分是 4 個模板站點 - 兩個服務器和兩個 WASM - 由它們的主要配色方案區分。
  2. 我個人 Github 網站上的一篇文章解釋了如何做到這一點。

九頭蛇遺址- 雜種

九頭蛇文章

好吧,您可以托管多個 WASM 文件。 但是,路徑/路由映射會出現問題。 當您獲取 WASM 頁面(例如“/site1/page1”)時,主機將無法在本地找到它並回退到某個路徑(在Startup.cs中設置:例如“endpoints.MapFallbackToPage("/Index");” )。 從那里它將 WASM 下載到客戶端,然后解析 WASM 中的映射。

因此,您現在可以想象托管兩個 WASM 客戶端時的問題:假設您有第二個站點“/site2/page1”,默認后備將始終下載第一個 WASM,而不是在其中找到頁面。

您可能必須編寫自己的“FallbackTo...”,將特定路徑/路由映射到特定 WASM 客戶端。 有可能,但也可能需要一些努力。

編輯:我剛剛發現 Microsoft Docs 實際上有一個關於這個主題的條目: Hosted deployment with multiple Blazor WebAssembly apps

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM