在 Blazor 服务器端上传文件时有没有办法避免 SignalR

Is there a way to avoid SignalR when uploading files in Blazor Server-Side

我有一个 Blazor 应用(服务器端) 作为 应用服务Azure 托管,我使用 Azure SignalR 服务 来扩展同时连接的用户数量。我还有一个可以上传文件的页面,文件可能很大,甚至 1GB 甚至更多,我正在使用 Tewr.Blazor.FileReader (Nuget) 以块的形式读取文件并将其上传到将文件保存到服务器的 API。 但我想知道是否可以在上传文件时以某种方式避免 SignalR 部分,因为对于 2GB 的文件,Azure SignalR 将每条消息分解为 2KB/每条,这意味着我达到了1M的限制messages/day/unit仅上传1个文件。 让我知道我可以解决这个问题的所有方法,目前我想到的解决方案很少:

如果您使用标准 DOM 事件(例如 onchanged=someJavaSciptFunction),则浏览器将 运行 JavaScript 响应该事件。

如果您在 UI 元素上设置了适当的 JS 脚本,那么您可以让 JS 向您的 API 发出 HTTP 请求。这将完全避免 SignalR。

您可以将文件上传到 Web API 控制器。您甚至可以在同一个项目中添加控制器。 我认为DevExpress Blazor FileUpload.

使用了这种方法

不过自己实现应该很容易。您需要一些 javascript 将文件内容发布到您的 Web API 控制器。 This blog entry 可以帮到你。