.NET 6.0 の Windowsフォームアプリから、MagicOnion NuGetパッケージを使い、gRPC通信処理を行う 前回作成したサンプル に、WEBサーバの最大30MB通信制限を解除する設定を加えました。
ソースコードは GitHub で公開しています。
加えた設定は、VisualStudioをデバッグ実行した場合、Kestrelサーバでホストした場合、IISサーバでホストした場合、それぞれの最大30MB通信制限を解除(最大1024MBへ変更)しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
using Microsoft.AspNetCore.Server.Kestrel.Core; using Microsoft.AspNetCore.Hosting; builder.WebHost.ConfigureKestrel(options => { options.ConfigureEndpointDefaults(endpointOptions => { endpointOptions.Protocols = HttpProtocols.Http2; endpointOptions.KestrelServerOptions.Limits.MaxRequestBodySize = int.MaxValue; }); }).UseIIS(); builder.Services.Configure<IISServerOptions>(options => { options.MaxRequestBodySize = int.MaxValue; }); |
参考
https://github.com/dotnet/aspnetcore/issues/20369
WEBサーバの最大30MB通信制限を解除せずに、30MB以上のデータを送信すると「Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException: ‘Request body too large. The max request body size is 30000000 bytes.’」エラーになります。
Visual Studio の「デバッグ > ウィンドウ > 例外設定」で、全項目にチェックを加えている状態じゃないと、デバッグ実行時に「Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException: ‘Request body too large. The max request body size is 30000000 bytes.’」エラーにはならず、MagicOnionの通信処理で「Grpc.Core.RpcException: ‘Status(StatusCode=”Unknown”, Detail=”Exception was thrown by handler.”)’」エラーになるため、ハマりました。
コメント