セッションが設定されていないため、コンテキストのセッションプロパティへのアクセスが発生します。ASP.NETコア1.0でのセッションの確認
設定によってセッションが使用可能かどうかを検出する方法。私はこれを行うことはできませんつまり
:context.Session?.Clear();
セッションが設定されていないため、コンテキストのセッションプロパティへのアクセスが発生します。ASP.NETコア1.0でのセッションの確認
設定によってセッションが使用可能かどうかを検出する方法。私はこれを行うことはできませんつまり
:context.Session?.Clear();
最も安全で最もパフォーマンスの高い方法は、request featuresです。例えば、ここではそれが有効になっていない場合、セッションはnullを取得するための単純な拡張メソッドです:
public static ISession SafeSession(this HttpContext httpContext)
{
var sessionFeature = httpContext.Features.Get<ISessionFeature>();
return sessionFeature == null ? null : httpContext.Session;
}
MVCコントローラから使用例:
var session = this.HttpContext.SafeSession();
ハック回避策は、しかし、よりよい解決策が見つかるまで、あなたが作業を継続させるには十分かもしれません。
public class Startup
{
public static bool IsSessionAvailable { get; set; }
//...
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
IsSessionAvailable = false; // session not available
//...
あなたのコントローラにあります。
if (Startup.IsSessionAvailable)
{
HttpContext.Session.Clear();
}
あなたは 'services.UseSessionを()'実行されていませんが設定に基づいて? – DavidG
私はあなたが設定から直接取得することを提案しようとしていると仮定します..正直な設定は私が本当に持っているものではありません...私はちょうどそのセッションを説明する設定について述べました...現実的理由は少しです異なる...セッションは後で使用できますが、コードはすでにそれを考慮する必要があります。 – Maxim