Blazor ServerのBlazorMonacoエディタのGetValue()が失敗する問題への対応

Blazor ServerのBlazorMonacoエディタでエディタテキストを取得しようとしたところ一見では分かりづらいエラーが発生したため、その問題の解決方法についての備忘録。


問題

Blazor ServerのBlazorMonacoエディタで長いソースをGetValue()すると

A task was canceled.

のようなエラーが発生してエディタのテキストが取得できない。


原因

SignalRハブの通信のメッセージサイズが超過している。


対応

SignalRの1つの受信ハブにおける最大メッセージサイズを大きめに設定する(既定値は32KB)。

Program.cs

builder.Services.AddSignalR(e =>
{
    e.MaximumReceiveMessageSize = 102400000;
});


参考ウェブサイトなど

  • Microsoft Learn
    HubOptions.MaximumReceiveMessageSize プロパティ

  • Stackoverflow
    Getting data from Blazor Monaco editor fails/timeout if there is a lot of data


以上です。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする