4

ASP.NET メンバーシップを使用してユーザーの作成、ログイン、ロール管理を管理する Web サイトを持っています。私は Visual Studio 2012 を使用しています。web.config には、Visual Studio によって作成された多くの要素があります。セッション状態に関連する要素の 1 つは次のとおりです。

sessionState mode="InProc" customProvider="DefaultSessionProvider"

name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection"

このリンクでは、次のように述べていCustom provider is used when mode is set to Customます。最初の質問は、この場合、なぜ Visual Studio はセッション状態のモード属性を InProc として生成し、同時にカスタム プロバイダーを設定するのかということです。2 番目の問題は、セッション状態のタイムアウトです。セッション状態にタイムアウト値を追加すると、時間切れになってもタイムアウトしません。

sessionState mode="InProc" customProvider="DefaultSessionProvider" timeout="30"

CustomProvider 属性を削除すると、タイムアウトが機能し始めました。この状況にもっと詳しい人はいますか?

4

1 に答える 1

3

タイムアウトに関する問題は CustomProvider 属性とは関係がないことに気付きました。問題は、フォームのタイムアウトとセッション状態のタイムアウトが異なる値に設定されていたことです。それらを同じ値に設定すると、機能し始めました。

しかし、Visual Studio が mode = InProc および customProvider = DefaultSessionProvider で sessionState 要素を作成するという事実は依然として奇妙です。Microsoft の Web サイトでは、customProvider が使用されるのはモードが Custom に設定されている場合のみであると述べているためです。

于 2013-03-29T17:14:46.193 に答える