2011-02-03 11 views
5

私は、既存のasp.net(MVC)アプリケーション内のセッション状態のすべての使い方をすばやく見つける方法について、すばらしいアイデアを探しています。セッション状態のすべての使用を見つける

問題のアプリケーションは、アウトソーシング開発の対象であり、運用上問題なく動作しています。しかし、私たちは最近、(私たちの優先ルート)StateServerではなく、InProcセッション状態を使用していることに気付きました。

小規模なテストでは、StateServerに切り替えて正常に動作しました。しかし、プロダクションに導入すると、突然多くのエラーが発生しました。これらのエラーがこの変更によって引き起こされたかどうかは確かではありませんが(実際にはデータベースレベルの問題について不平を言っていました)、変更を削除するとアプリケーションが再び機能することができました(これはリサイクルが発生したためです)。

セッションを再開する前に、セッションに配置されているすべてのオブジェクトの徹底的な監査を実行したいと思います(これまでコントローラをいくつか簡単に見てみました。コードを完全に制御できたら、クラスをコメントアウトして(セッションクラスに到達するさまざまな方法をコンパイルして見つける)、アクセサをコメントアウトしてコンパイルして訪問します各エラーしかし、.NETフレームワークの組み込み型ではこれを行うことはできません。

だから、それぞれの使い方を見つけるにはどのようなスマートなアイデアですか?


私は反射板を使用しようと決めました。

System.Web.HttpSessionStateBase.set_Item(String, Object) : Void 
System.Web.SessionState.HttpSessionState.set_Item(String, Object) : Void 
System.Web.SessionState.HttpSessionState.set_Item(Int32, Object) : Void 
System.Web.HttpSessionStateBase.set_Item(Int32, Object) : Void 
System.Web.HttpSessionStateBase.Add(String, Object) : Void 
System.Web.SessionState.HttpSessionState.Add(String, Object) : Void 

(ここではどこにでもTempDataを使用していないことを確認しています)。私はアイテムがセッションに終わることができる他の経路を見逃していますか?

+1

あなたはインプロセスプロバイダをラップし、独自のSessionStateプロバイダを作ることができますが、http://msdn.microsoft.com/en-us/library/ms178587.aspx、追加取得し、削除するためにすべての呼び出しを記録します。こうすることで、コールスタックを使用してコード内のセッションの使用状況をすべて追跡できます。 –

答えて

0

私は「セッション」のソリューションワイド検索をします。これがASP.Net MVCアプリケーションならば、TempDataもSessionであることを忘れないでください。

+0

私はそれに対して多くの誤認を得ています.nHibernateにはたくさんの作業があり、セッションについても話しています。 –

+0

Aaah! nHibernateセッション。 nhibernateセッションで動作しているレイヤーがWebセッションを使用しようとしていない可能性はありますか?はいの場合、検索をウェブプロジェクトだけに限定することができます。 – Pradeep

2

asp.net MVCのソースを入手できます。 MVC 1

のためのMVC 2 http://aspnet.codeplex.com/releases/view/24471のためのMVC 3 http://aspnet.codeplex.com/releases/view/41742のセッション

の使用

http://aspnet.codeplex.com/releases/view/58781を探すために、私は実際に何かがある理由を見つけるために必要がある場合のために転がっているように、これらは非常に有用であることが分かってきましたそれは何をしているのか。

MVC 2はセッションをオフにしても実行されないため、stateserverと互換性のない方法でセッションを使用している可能性があります。

DBエラーから、nHibernateのような音が何かをしている可能性があります。あなたはそれを見るためにもソースを得ることができますが、私はそれがセッションの使用が文書化されると確信しています。

サイモン

関連する問題