Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 在Blazor WebAssembly应用程序中,是否可以在同一台服务器上托管两个(多个)客户端_Asp.net Core_Blazor_Blazor Webassembly_Blazor Client Side - Fatal编程技术网

Asp.net core 在Blazor WebAssembly应用程序中,是否可以在同一台服务器上托管两个(多个)客户端

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”框,但现在它不起作用,显示一个空浏览器。我想知道如何设置服务器以选择构建后将显示的客户机,以及新添加的客户机需要与服务器通信的更改。 我找到了这个链接,但它只解决了冲突错误。嗯,您可以托

我创建了一个名为“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网站本身并不是真正的网站,而是单页应用程序。该网站只是一个发布平台,因此您可以从同一主机站点运行任意数量的内容。使其工作的诀窍在于配置。关于如何做到这一点的详细解释太多,无法在这里给出答案,因此我提供了以下链接:

  • 一个名为Hydra的演示站点,运行着一整套服务器和WASM水疗中心。杂种狗(dog)部分有4个模板站点,两个服务器和两个WASM,它们的主色调不同
  • 我个人Github网站上的一篇文章解释了如何做到这一点
  • -杂种狗


    我已经用链接更新了我的答案。您的文章写得很好,示例也很有效。我接受了另一个答案,只是因为它更接近我想在我的具体项目上做什么。