2012-10-10 2 views
1

asp.net 인증 및 SQL Server sessionState 모드를 사용하는 응용 프로그램이 있습니다. 어떤 이유로 세션은 우리 환경 중 하나가 만료되지 않는 것으로 보입니다. 그것은 sessionState의 DB에 대한 사용자 정의 SQL 매개 변수를 가지고, 그래서 당신이 볼 수 있듯이SQLServer 세션 상태 모드를 사용하여 MOSS 2007에서 호스팅되는 asp.net 세션이 만료되지 않습니다

<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 인스턴스에서 호스팅 :

은 web.config 파일에서 추출합니다.

그래서 내가 가장 많이 겪는 문제는 사용하지 않도록 설정된 SQL Server 에이전트 또는 누락 된 SQL Server 에이전트 작업 일 것 같습니다. 나는 그것이 여기에 해당하지 않는다는 것이 긍정적이다. 세션을 호스팅하는 ASPStateTempSessions 테이블에 가서 동작이 일관성이 있는지 확인했습니다. 내 웹 사이트에 로그인하면 세션 ID가있는 회선이 만들어지고 1 ~ 2 분 후에 회선이 파괴됩니다 (세션이 만료 됨). 그러나 웹 사이트로 돌아가서 새로 고치면 로그 아웃되는 대신 계속 로그인됩니다. 그런 다음 ASPStateTempSessions 테이블로 다시 이동하면 동일한 세션 ID로 새 줄이 만들어집니다.

내가 알 수있는 한 세션 ID는 몇 주가 살아남을 수 있습니다 ... 브라우저가있는 컴퓨터를 재부팅해도 아무런 변화가 없습니다. 쿠키를 삭제하면됩니다. 분명히 브라우저의 쿠키가 서버에서 세션의 재생성을 트리거하고 있습니다.

또한 나는 쿠키가없는 모드로 실행되지 않는다고 확신합니다. 먼저 브라우저에서 쿠키를 볼 수 있으며 URL에가는 sessionId (쿠키가없는 세션을 실행 중인지 여부를 판별 할 수있는 구분 기준)를 포함하지 않습니다.

여러 환경이 있습니다. 하나는 작동 중 (라이브 서버), 하나는 작동하지 않습니다 (데모 서버).

라이브 서버 :

<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 파일을 비교할 때, 무언가를 의미 할 가능성이 높습니다의 차이는 이것이다 응용 프로그램은 데모 환경에서 도메인 간 인증을 사용할 수 있어야합니다.

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 

답변

0

ASP.Net 세션 상태는 기본적으로 세션이 있었다있는 클라이언트의 의견을하지 않는 60 분 세션 상태 개체가 만료되는 슬라이딩 만료 메커니즘을 사용하여 만들어진. 이 도움이 http://blogs.msdn.com/b/toddca/archive/2009/03/17/sharepoint-session-state-the-guest-that-just-won-t-leave.aspx

희망 :

SharePoint에서 결코 ASPStateTempSessions 테이블에서이 세션 상태 기록을 정리 없다고 알려진 문제가 있습니다?

+0

아니요, 확인하고 표가 정리됩니다. 세션 만료와 함께 라인이 생성되고 삭제되는 것을 봅니다 ... –

+0

60 분을 남겨두고 있습니까? 그렇지 않으면 세션이 만료되지 않았습니다! 절대 만료와 달리 슬라이딩 만료입니다. – sainiuc

+0

나는 긍정적이다. 기본 제한 시간 값을 그대로 사용하든 아니면 더 작은 값으로 변경하든 테이블 자체에 가서 해당 행이 삭제된다는 것을 확인할 수 있습니다. 세션이 만료 되었기 때문입니다. 그런 다음 브라우저를 다시 시작할 때마다 (심지어 3 일 후에) 해당 줄이 다시 만들어집니다. 쿠키가 동일한 세션 ID로 세션을 재생성합니다. –

관련 문제