Asp.net core 在Blazor WebAssembly应用程序中,是否可以在同一台服务器上托管两个(多个)客户端
我创建了一个名为“BlazorWebApp”的Blazor WebAssembly应用程序,并选中了“ASP.NET Core hosted”复选框。现在,我可以添加另一个客户端应用程序来访问同一服务器吗?我尝试添加另一个名为Client2的Blazor WebAssembly并取消选中“Core hosted”框,但现在它不起作用,显示一个空浏览器。我想知道如何设置服务器以选择构建后将显示的客户机,以及新添加的客户机需要与服务器通信的更改。Asp.net core 在Blazor WebAssembly应用程序中,是否可以在同一台服务器上托管两个(多个)客户端,asp.net-core,blazor,blazor-webassembly,blazor-client-side,Asp.net Core,Blazor,Blazor Webassembly,Blazor Client Side,我创建了一个名为“BlazorWebApp”的Blazor WebAssembly应用程序,并选中了“ASP.NET Core hosted”复选框。现在,我可以添加另一个客户端应用程序来访问同一服务器吗?我尝试添加另一个名为Client2的Blazor WebAssembly并取消选中“Core hosted”框,但现在它不起作用,显示一个空浏览器。我想知道如何设置服务器以选择构建后将显示的客户机,以及新添加的客户机需要与服务器通信的更改。 我找到了这个链接,但它只解决了冲突错误。嗯,您可以托
我找到了这个链接,但它只解决了冲突错误。嗯,您可以托管多个WASM文件。但是,路径/路由映射会出现问题。获取WASM页面(例如“/site1/page1”)时,主机将无法在本地找到它,并返回到某个路径(在
Startup.cs
中设置):例如“endpoints.MapFallbackToPage(“/Index”);”)。它将从那里下载WASM到客户端,然后解析WASM中的映射
因此,您现在可以想象托管两个WASM客户端时的问题:假设您有第二个站点“/site2/page1”,默认的回退将始终下载第一个WASM,而不会在其中找到页面
您可能需要编写自己的“FallbackTo…”,它将特定路径/路由映射到特定WASM客户端。可能,但也可能需要一些努力
编辑:我刚刚发现微软文档实际上在这个主题上有一个中心:这是完全可能的。Blazor网站本身并不是真正的网站,而是单页应用程序。该网站只是一个发布平台,因此您可以从同一主机站点运行任意数量的内容。使其工作的诀窍在于配置。关于如何做到这一点的详细解释太多,无法在这里给出答案,因此我提供了以下链接:
我已经用链接更新了我的答案。您的文章写得很好,示例也很有效。我接受了另一个答案,只是因为它更接近我想在我的具体项目上做什么。