asp.net認証とSQLServersessionStateモードを使用して実行しているアプリケーションがあります。何らかの理由で、セッションが環境の1つを期限切れにすることはないようです。
これは、web.configファイルからの抜粋です。
<sessionState mode="SQLServer" timeout="1" allowCustomSqlDatabase="true" partitionResolverType="Microsoft.Office.Server.Administration.SqlSessionStateResolver, Microsoft.Office.Server, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" sessionIDManagerType="Lanap.BotDetect.Persistence.CustomSessionIDManager, Lanap.BotDetect, Version=2.0.15.0, Culture=neutral, PublicKeyToken=74616036388b765f" />
ご覧のとおり、アプリケーションは負荷分散されたMOSS2007インスタンスでホストされているため、sessionStateDB用のカスタムSQLパラメーターがあります。
私のSOの調査から、これに関する最も一般的な問題は、SQL Serverエージェントが無効になっているか、SQLServerエージェントジョブが見つからないか実行されていないことのようです。ここではそうではないことを私は確信しています。セッションをホストするASPStateTempSessionsテーブルに移動し、その動作が一貫していることを確認しました。Webサイトにログインすると、セッションIDで行が作成され、1〜2分後に破棄されます(セッションの有効期限が切れます)。ただし、その後Webサイトに戻って更新すると、ログアウトする代わりにログインしたままになります。次にASPStateTempSessionsテーブルに再度移動すると、同じセッションIDで新しい行が作成されます。
私の知る限り、セッションIDは数週間存続します...ブラウザがある場所でコンピュータを再起動しても何も変わりません。クッキーをクリアすることはできます。明らかに、ブラウザのCookieがサーバーでのセッションの再作成をトリガーしています。
また、私はクッキーレスモードで実行していないことを確信しています。まず、ブラウザでCookieを確認できます。また、アクセス先のURLにsessionIdが含まれていません(Cookieなしのセッションを実行しているかどうかを判断するための識別基準であることがわかりました)。
私にはいくつかの環境があります。1つは機能しています(ライブサーバー)、もう1つは機能していません(デモサーバー)。両方のweb.configファイルを比較する場合、何かを意味する可能性が最も高い違いは次のとおりです。
ライブサーバー:
<authentication mode="Forms">
<forms loginUrl="/_layouts/ClientPortal/login.aspx" />
</authentication>
デモサーバー:
<authentication mode="Forms">
<forms loginUrl="/_layouts/ClientPortal/login.aspx" name=".ASPXAUTH" domain=".shlsolutions.net" protection="All" path="/" timeout="2880" />
</authentication>
この違いの理由は、アプリケーションがデモ環境でクロスドメイン認証を使用できる必要があるためです。
web.configファイルで何かを変更する必要があることは確かですが、実際には何がわかりません。それを手伝ってくれませんか。
編集:クッキーのコピー/貼り付け
.ASPXAUTH=BDEBD7975B717219A24D8D2FB22ADF523F4E63C9619B758A9F500CC2C9967156A9CFDB057A2DFC4DF9157A1D6E0F6EA3FBBA90C3D566FEB9E7F63AA4DBBDF68A32A5518175F6073E81677069C8205D9433306DCE331921237189DEECE59B6C7494EA6369C6D1BEAE544E83295D942DCE856718C5B095D695DB42D68BF75991A5EE37246E37B96F1675547E87338B89FE669EFD2A5AB38A15F7926025791F8FC17A02882B; path=/; domain=.shlsolutions.net
ASP.NET_SessionId=pa5v0f2mnc20jybxq4bmbr20; path=/; domain=uat.central.shlsolutions.net; HttpOnly
.ASPXAUTH=D3DCB91EA8705E7350AB2BEDBDC79F37C87CB391AFF81A9F07CAE72DB7BDBFA2AA62B1EF538C7EF77C7874D84A09DCDADF186884190B9BEDA56E73E9A1EED1948A6C75E618D4FD7AA9344C234B6472E3BEEC088911112877E7A77A6E2B27CA8EF69BE20B38591EDB9706225FA9831890B1C4684B3D9075153CB22CC37140F8C05811C44853DC3E7278740B7BBDC55627E801D81ED8EE8ABC07AA8CFF1F3F59EED9606ABB; path=/; domain=uat.central.shlsolutions.net; HttpOnly
__utma=164265915.107905765.1350568100.1350661280.1350898679.7; expires=Wed, 22 Oct 2014 09:37:58 GMT; path=/; domain=.uat.central.shlsolutions.net
__utmb=164265915.1.10.1350898679; expires=Mon, 22 Oct 2012 10:07:58 GMT; path=/; domain=.uat.central.shlsolutions.net
__utmc=164265915; path=/; domain=.uat.central.shlsolutions.net
__utmz=164265915.1350568100.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); expires=Mon, 22 Apr 2013 21:37:58 GMT; path=/; domain=.uat.central.shlsolutions.net