ASP.NET Core 版の WebSocket 実装である SignalR では、 C# 側で実装したメソッドを、 JavaScript フロントエンドから呼び出すことができます。 その際、例えばバイナリの Base64 String を送るなどでパラメータサイズが 32KB を超える場合、以下のようなエラーが発生します。
The maximum message size of 32768B was exceeded. The message size can be configured in AddHubOptions. at Microsoft.AspNetCore.SignalR.HubConnectionHandler`1.DispatchMessagesAsync(HubConnectionContext connection) at Microsoft.AspNetCore.SignalR.HubConnectionHandler`1.RunHubAsync(HubConnectionContext connection)
このようなエラーが出てしまったときは、エラーメッセージにあるとおりオプションを設定することで、許容できる受信サイズを上げることができます。
ASP.NET Core なら、 Startup.cs にて、以下のような記述をすることで上げることができます:
using Microsoft.Extensions.DependencyInjection;
private void ConfigureServices(IServiceCollection services) {
// ...
services.AddSignalR(options => {
options.MaximumReceiveMessageSize = 10 * 1024 * 1024; // 10MiB
});
}
Microsoft Learn にあるとおり、デフォルトサイズは 32KB なので、 32KB を超えるメッセージを受信する予定がある場合は、設定しておきましょう。