ASP.NET Core
A set of technologies in the .NET Framework for building web applications and XML web services.
4,773 questions
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
HttpContextから取得したSessionクラスへの書き込みに際しエラーが発生しております。
コードは以下となります。
public void SetSessionInfo(string key, object value)
{
HttpContext httpContext = _httpContextAccessor.HttpContext;
ISession session = httpContext.Session;
// 格納するデータをJSON文字列にシリアライズして取得
string jsonValue = JsonSerializer.Serialize(value);
// セッションに指定されたキーでJSON文字列を格納
session.SetString(key, jsonValue);
}
このsession.SetStringの部分で、以下のエラーが発生し、書込みに失敗しております。
(一部マスキング)
System.InvalidOperationException
HResult=0x80131509
Message=The session cannot be established after the response has started.
Source=Microsoft.AspNetCore.Session
スタック トレース:
場所 Microsoft.AspNetCore.Session.DistributedSession.Set(String key, Byte[] value)
場所 Microsoft.AspNetCore.Http.SessionExtensions.SetString(ISession session, String key, String value)
場所 ○○○○.Data.SessionControl.SetSessionInfo(String key, Object value) (C:\visualstudiopj\source\○○○○\○○○○\Data\SessionControl.cs):行 ○○
場所 ○○○○.Pages.SessionID.<SetSessionInfo>d__14.MoveNext() (C:\visualstudiopj\source\○○○○\○○○○\Pages\SessionID.razor):行 ○○
この例外は、最初にこの呼び出し履歴
[外部コード]
○○○○.Data.SessionControl.SetSessionInfo(string, object) (SessionControl.cs 内)
○○○○.Pages.SessionID.SetSessionInfo() (SessionID.razor 内) でスローされました
エラー内容から察するに、httpcontextのレスポンスがすでに始まっている?というような内容のようなのですが、
対処法がわからず苦慮しております。
こちらのエラーの発生原因と、その対処法についてご教示いただけますでしょうか?
なお、フレームワークはBlazorServerを利用しており、当エラーについては、複数の開発者間で挙動が異なります。
書込みに成功する人とエラーが出る人とに分かれておりますが、ソースコードや、ブラウザの設定等は、
現状差異は見当たらない状況です。
ご確認の程よろしくお願い致します。