c# Signalr报错:消息大小超出了最大限制32kB。消息大小可在AddHubOptions中配置。
csharp
The maximum message size of 32kB was exceeded. The message size can be configured in AddHubOptions.
报错位置是:
csharp
public override async Task OnDisconnectedAsync(Exception? exception)
{
if (exception != null) {
//记录错误日志
//The maximum message size of 32kB was exceeded. The message size can be configured in AddHubOptions.
}
await base.OnDisconnectedAsync(exception);
}
参考微软官方文档:在这里插入图片描述
https://learn.microsoft.com/zh-cn/aspnet/core/signalr/hubs?view=aspnetcore-10.0

解决办法:
在Program.cs 文件中增加: options.MaximumReceiveMessageSize = 2097152;将限制改为2M
参考微软官方文档:https://learn.microsoft.com/zh-cn/aspnet/core/signalr/configuration?view=aspnetcore-10.0&tabs=dotnet

csharp
builder.Services.AddSignalR().AddHubOptions<ChatHub>(options =>
{
options.EnableDetailedErrors = true;
options.MaximumReceiveMessageSize = 2097152;//2 * 1024 * 1024; 2MB 限制改为2M
}) .AddJsonProtocol(options =>
{
// 禁用驼峰命名法,保留原始属性名
options.PayloadSerializerOptions.PropertyNamingPolicy = null;
// 允许未定义属性(避免旧客户端缺失字段时报错)
options.PayloadSerializerOptions.WriteIndented = false;
options.PayloadSerializerOptions.DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault;
});