私は、何かのように、クラスライブラリにSESSIONSTATEを使用したいです> "NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていません。" クラスライブラリにsystem.Webへの参照があります。 .NET 4では、私はこれを安全に行うことができます。しかし、それは.NET 4.6.1の問題です。 どうすればこの問題を解決できますか? おかげASP.NET 5/MVC 6、クラスライブラリのセッションの使い方私はそれが例外をスローし、このメソッドを呼び出すとき</p> <pre><code>public static void SetUserId() { HttpContext.Current.Session["userId"] = 1; } </code></pre> <p>が、「要求の処理中に未処理の例外が発生しました。」:.NET 4.6.1で
答えて
これはデフォルトでnull
で、コンセプトは駆動ASP.NETコア1.0は、プラグイン可能なミドルウェアです。明示的にセッションをオプトインする必要があります。
Microsoft.Extensions.Caching.Memory
とMicrosoft.AspNet.Session
の両方の依存関係がproject.json
に存在することを確認する必要があります。次に、あなたの Startup.cs
に次の行を追加します。
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc();
services.AddCaching();
services.AddSession(options => {
options.IdleTimeout = TimeSpan.FromMinutes(30);
options.CookieName = ".MyApplication";
});
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseSession();
// Removed for brevity...
}
詳細な記事here。それはあなたがする必要があるすべてのものでなければなりません。
更新
は、WebアプリケーションのHttpContext.Current
外を使用しようとしないでください。これは、HTTP要求/応答パイプラインのコンテキスト内でのみ意図されています。あなたが探している希望のインタラクションを達成するために抽象化を利用することが好ましい。
明示的な例を提供するために、より多くのソースコードを共有する必要があります。
セッションStaeは私のASP.NETアプリケーションで利用できますが、私の問題はクラスライブラリの中にあります。 ASP.NETアプリケーションではセッションにアクセスしますが、クラスライブラリにはアクセスしません。ネット4.0では、私はそのような問題はありませんでした。例外は.NET 4.6.1に移行したときに発生します。ところで、クラスライブラリの中にstartup.csはありません。 –
for Update:クラスライブラリのアプリケーション状態にアクセスするにはどうすればよいですか?セッションの代わりにwep:wep service?共有メモリ ?データベース?私はそれが流暢なコードではないので、私はクラスのライブラリにWebアプリケーションからパラメータを渡すしたくないことに注意してください。 –
Ali - あなたはそれから地獄を抽象化します。あなたのクラスライブラリで現在のセッションが必要な場合は、それをコンストラクタの引数として渡します。 –
- 1. w3wp.exeで未処理の例外( '<System.StackOverflowException>')が発生しました
- 2. 例外ArgumentNullExceptionは、未処理だった - 私は私がしようとしています。基本的</p> <p>begginnerにしています</p> <p>「</p> <p>値はnullにすることはできません型 『System.ArgumentNullException』の未処理の例外がmscorlib.dllで発生しました」
- 3. 例外と例外のスロー。<T>?
- 4. 例外の処理中に例外が発生しました
- 5. メソッドのチェーンでランタイム例外を処理する方法は?三つの方法がある</p> <p>が言うことができます::
- 6. は型「System.IO.FileNotFoundException」の未処理の例外がLoggerLibrary.dll</p> <p>で発生しました追加情報++ラッパー
- 7. スプリングMVC形態<form:form > org.apache.jasper.JasperExceptionが:例外処理JSPページを発生
- 8. ボタンクリックイベントで未処理の例外が発生しました
- 9. Python Tkinter未処理例外スレッド開始<function main_thread at ...>
- 10. 'System.ArgumentException'型の未処理の例外が発生しました
- 11. タイプ「System.Data.SqlClient.SqlException」の例外が「System.Data.SqlClient.SqlException」がのSystem.Data.dllで発生したが、ユーザーコード</p> <p>追加情報で処理されなかったタイプの
- 12. 休止状態、2.5を再生する:それが発生した(::org.hibernate.hql.internal.ast.QuerySyntaxExceptionユーザーがマップされていない例外がある)</p> <p>表は、私が</p> <p>以下の例外を取得してきた
- 13. ボタンを使用して別のクラスのメソッドを呼び出すと、未処理の例外が発生する
- 14. 'System.InvalidCastException'型の未処理の例外が発生しました
- 15. runMidlet.exeで未処理のWin32例外が発生しました
- 16. mscorlib.dllで未処理の例外 'System.IO.IOException'が発生しました
- 17. アプリケーションで未処理のWin32例外が発生しました
- 18. Fody:未処理の例外が発生しました
- 19. DbUpdateConcurrencyExceptionは「タイプ 『System.Data.Entity.Infrastructure.DbUpdateConcurrencyException』の例外がEntityFramework.dllで発生したが、ユーザーコードで</p> <p>追加情報処理されなかったユーザーコードの修正
- 20. Javaに関して<E> public static <E> void
- 21. 現在のWeb要求asp netの実行中に未処理の例外が生成されました
- 22. xUnit .netのAssert.Throwsでタスクによってスローされた例外を処理する方法<T>?
- 23. 私はMagentoのbackednにそのメッセージを取得し、</p> <p>例外印刷がセキュリティ上の理由から、デフォルトでは無効になっていますリクエストの処理中にエラーが発生してい</p> <p>をガラス張りよ、あなたの要求のMagento
- 24. HttpURLConnectionを呼び出すと未処理の例外が発生する
- 25. Entity Framework 6での処理中に例外が発生する
- 26. Zend_Aclがオンの場合の例外処理方法は?私は私のコードで何かを追加しました</p> <blockquote> <p>module_name . "::" . controller_name . "::" . action_name;</p> </blockquote> <p>:それは私がZend_Aclではをimplemeted、そのworking.my資源であるように思わまし
- 27. Xsl.LoadExceptionは型 『System.Xml.Xsl.XslLoadException』の未処理の例外がSystem.Dataで発生した私は、XSLTファイルをロードしようとしたとき、私は」このコンパイルエラーに</p> <p>を取得し、いくつかの理由
- 28. ファイルが見つからない例外は、サブプロセス 輸入SYS</p> <p>のIp = '127.0、私はこのことを示していたファイルではない例外</p> <hr> <p>輸入OSを実行したときに
- 29. セッションのサブドメイン間のクッキー処理をクロスですか?</p> <ul> <li>sub1.domain.com</li> <li>sub2.domain.com</li> </ul> <p>、または各サブドメインは常にそれ自身のクッキーを必要とします:
- 30. が例外をスローすることは未処理の例外のエラー
これは、クラスライブラリでセッションIDにアクセスする必要がある場合、間違っていることを示す良い兆候です。 – Tseng
何が問題なのですか?私は.NET 4.0のプロジェクトを持っており、うまくいきます。 .NET 4.6.1に移行したときに問題が発生しました –
実際の例外を調べてみますか? – CodeCaster