嗨,我想问一下如何配置blazor服务器端应用程序以允许上传大于28.6MB的文件(本文中的大小为:https://www.strathweb.com/2012/09/dealing-with-large-files-in-asp-net-web-api/)。
我使用的是BlazorInputFile和Tewr.Blazor.FileReader。当文件大小小于23MB时,一切都很好。较大的文件挂起应用程序。当读取内存流时,两种解决方案都会停止。
MemoryStream ms;
using (ms = new MemoryStream())
{
await file.Data.CopyToAsync(ms); <- STOPS HERE
ms.Dispose();
}
或
using (MemoryStream memoryStream = await file.CreateMemoryStreamAsync(100 * 1024 * 1024)) <-STOPS HERE
{
// Sync calls are ok once file is in memory
}
我尝试了多种设置,如:
services.AddSignalR(e =>
{
e.MaximumReceiveMessageSize = 100 * 1024 * 1024;
});
app.Use(async (context, next) =>
{
context.Features.Get<IHttpMaxRequestBodySizeFeature>().MaxRequestBodySize = null;
await next.Invoke();
});
services.AddServerSideBlazor().AddHubOptions(o => o.MaximumReceiveMessageSize = 100 * 1024 * 1024);
但它们都不起作用。有什么想法吗?
不确定情况是否仍然如此,但之前我不得不添加一个web.config文件,尽管它们实际上没有在.net core中使用,并且必须添加以下条目:
<security>
<requestFiltering>
<!-- This will handle requests up to 50MB -->
<!--<requestLimits maxAllowedContentLength="52428800" />-->
<requestLimits maxAllowedContentLength="104857600" />
</requestFiltering>
</security>