Javascript 在Blazor服务器端上传文件时,有没有办法避免发出信号

Javascript 在Blazor服务器端上传文件时,有没有办法避免发出信号,javascript,c#,azure,signalr,blazor,Javascript,C#,Azure,Signalr,Blazor,我有一个Blazor应用程序(服务器端)作为应用程序服务托管在Azure中,我使用Azure Signal Service可以同时扩展连接的用户数量。我还有一个页面,你可以上传文件,文件可能很大,甚至1GB甚至更多,我使用Tewr.Blazor.FileReader(Nuget)将文件分块读取并上传到API,该API将文件保存到服务器但我想知道在上传文件时是否有可能在某种程度上避免使用信号器部分,因为对于2GB文件,Azure信号器将每条消息的大小拆分为2KB/条,这意味着我达到了1M条消息/天

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

  • 将单独的信号器应用程序托管为应用程序服务,而不是使用Azure信号器
  • iframe指向ASP.NET核心应用程序的页面,该只处理文件的传输。(不确定这是否会触发信号机通信)

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


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

您可以将文件上载到Web API控制器。您甚至可以在同一项目中添加控制器。 我认为这个方法是由政府使用的


但它应该很容易实现自己。您需要一些javascript将文件内容发布到Web API控制器。可以帮助您。

您是否尝试更改信号机配置中的
ApplicationMaxBufferSize
TransportMaxBufferSize
@这并不能解决问题,它会在使用内置信号器时影响上传速度,但Azure信号器默认情况下会将任何大于2KB到2KB/的消息分解并处理它们。(我可以有10MB的数据块,但当它到达Azure信号器服务时就会崩溃)你确定要通过信号器来实现吗?作为一个普通的HTTP API端点?你是否尝试过添加stone Javscript在浏览器中读取文件,然后直接通过HTTP将其发布到API端点?@HenkHolterman我当然想使用普通的HTTP API端点,但问题是,我如何实现它,据我所知,一切都通过SignalR与Blazor服务器端进行