ASP.NETメンバーシップとフォーム認証に関連する問題があります。私はこれについてかなり長い間(StackOverflow.comを含めて)解決策を探していましたが、私のシナリオに関していくつかの解決策を見つけることができませんでした。私を助けてください。
アプリケーションでASP.NETメンバーシップとフォーム認証を使用しています。問題は、アプリケーションを約30分以上テストしているときに、次のエラーが発生することです。-
1)プールから接続を取得する前にタイムアウト期間が経過した。これは、プールされたすべての接続が使用されていて、最大プールサイズに達したために発生した可能性があります。
2)セッションは期限切れにならず、ログインページにリダイレクトされません。
3)セッション値が数回nullになります。
アプリケーションも本番環境にありますが、クライアントは上記の問題のいずれもまだ報告していません。
以下のWeb.config設定をご覧ください:-
<sessionState timeout="30" mode="InProc">
</sessionState>
<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="20">
<providers>
<clear/>
<add name="SqlProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="DBSQLServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" passwordFormat="Hashed" applicationName="/ApplicationPortal"/>
</providers>
</membership>
<add name="DBSQLServer" connectionString="Data Source=SERVER-NAME\SQLEXPRESS2008;Initial Catalog=DB-Name;Max Pool Size=100;Trusted_Connection=True;" providerName="System.Data.SqlClient"/>
そして、セクションを忘れないでください:-
<authentication mode="Forms">
<forms loginUrl="~/Login.aspx" defaultUrl="~/Login.aspx" protection="All" timeout="30">
</forms>
</authentication>
破棄されなかった接続はほとんどありませんでしたが、現在はすべての接続が適切に破棄されています。DataReadersを閉じることでこれは解決されることがどこかで見つかりましたが、すべての接続を破棄したので、シナリオでDataReadersを閉じたり破棄したりしない場合、これは影響しますか?
また、これら2つのエラーを同時に引き起こしている可能性のある問題と、これら2つの問題を修正するにはどうすればよいかを知りたいと思います。
多くのページでインラインクエリも使用されています。