私のASP.NET WebアプリケーションはInternet Explorerではうまく動作しますが、FirefoxとChromeではHttpContext.Current
が定義されていて、HttpContext.Current.Session
がnullの問題があります。エラーはおそらく、セッションオブジェクトがASP.NETページのライフサイクルの早い段階でアクセスされているために発生している可能性があります。しかし、WebサイトはInternet Explorerを使用してアクセスしようとしているので、すぐに受け入れられる修正を見つけることを望んでいます。おそらく、これらの線に沿って何か:nullの場合、HttpContext.Current.Sessionをプログラムで作成できますか?
if (HttpContext.Current.Session == null)
{
// Create Session - but how?
}
そこで質問です:私はASP.NETでプログラムSessionオブジェクトを作成できますか?
編集:このバグは、誤って同期していた.designerファイルに関連していました。奇妙な、しかし今はそれが動作します。
ありがとうございました。私はこの問題を解決するためにもっと深く掘り下げなければならないと思う。確かに一貫性がなく、Visual Studioの内部Webサーバーを使用している場合にのみ、プロダクションサーバー上では問題にならないと言われています。 –
Webアプリケーション自体のコンテキストでは、コンテキスト/セッションを作成することはできませんが、単体テストに必要な場合は、これを行う方法があります。彼らは醜いですし、可能であればHttpContextBase/HttpSessionStateBaseを嘲笑して使っています。ちょうど、誰かがアプリの代わりに単体テストのコンテキストでこの質問/答えに遭遇した場合に備えて、これを補完すると思っていました。 – tvanfosson
@Jan - Webサーバーを再起動せずにアプリケーションを変更すると、セッションが乱れることがあります。私はしばしば、デバッガで動作しているときにセッションが乱れるのを見ると、実際のWebサーバーを停止します(タスクバーアイコンを右クリックします)。通常、セッション関連のものをすぐに消去します。 – tvanfosson