다음을 통해 공유


SessionStateStoreProviderBase 클래스

정의

데이터 저장소에 대한 세션 상태 공급자의 필수 멤버를 정의합니다.

public ref class SessionStateStoreProviderBase abstract : System::Configuration::Provider::ProviderBase
public abstract class SessionStateStoreProviderBase : System.Configuration.Provider.ProviderBase
type SessionStateStoreProviderBase = class
    inherit ProviderBase
Public MustInherit Class SessionStateStoreProviderBase
Inherits ProviderBase
상속
SessionStateStoreProviderBase

예제

세션 상태 저장소 공급자 구현 예제를 보려면 세션 상태 저장소 공급자 구현합니다.

다음 코드 예제에서는 사용자 지정 세션 상태 저장소 공급자를 사용 하도록 구성 된 ASP.NET 애플리케이션에 대 한 Web.config 파일을 보여줍니다.

<configuration>
  <connectionStrings>
    <add name="OdbcSessionServices" connectionString="DSN=SessionState;" />
  </connectionStrings>

  <system.web>
    <sessionState
      mode="Custom"
      customProvider="OdbcSessionProvider">
      <providers>
        <add name="OdbcSessionProvider"
             type="Samples.AspNet.Session.OdbcSessionStateStore"
             connectionStringName="OdbcSessionServices" />
      </providers>
    </sessionState>
  </system.web>
</configuration>

설명

ASP.NET 세션 상태를 읽고에서 세션 상태를 사용 하 여 데이터 저장소로 세션 데이터 저장소 공급자를 기록 합니다. 세션 상태 저장소 공급자는 상속 된 클래스는 SessionStateStoreProviderBase 데이터에 특정 된 구현 사용 하 여 해당 멤버를 저장 하는 추상 클래스 및 재정의 합니다. ASP.NET 페이지를 처리하는 동안 세션 상태 저장소 공급자는 SessionStateModule 클래스에 의해 호출되어 세션 변수 및 시간 제한 값과 같은 관련 세션 정보를 저장하고 검색하기 위해 스토리지용 데이터 저장소와 통신합니다.

각 ASP.NET 애플리케이션 내 세션 데이터는 각각에 대해 개별적으로 저장 됩니다 SessionID 속성입니다. ASP.NET 애플리케이션에서 세션 데이터를 공유 하지 않습니다.

사용자 지정을 지정할 수 있습니다 SessionStateStoreProviderBase 설정 하 여 ASP.NET 애플리케이션에 대 한 구현을 합니다 mode 특성을 sessionState 구성 요소를 CustomcustomProvider 으로 특성을 사용자 지정 공급자의 이름 이 항목의 예제에 나와 있습니다.

세션 저장소 데이터 잠금

있기 때문에 ASP.NET 애플리케이션은 동시 요청에 응답을 지원 하기 위해 다중 스레드, 동시 요청 수 같은 세션 정보에 액세스 하려고 할 수 있습니다. 여기서 모든 프레임셋에서 다중 프레임 동일한 애플리케이션을 액세스 하는 시나리오를 고려 합니다. 여러 스레드에서 동시에 웹 서버의 프레임셋의 각 프레임에 대 한 별도 요청을 실행할 수 있습니다. 세션 상태 변수에 액세스 하는 각 프레임 원본에 대 한 ASP.NET 페이지, 세션 저장소를 동시에 액세스 하는 여러 스레드가 있을 수 있습니다.

예기치 않은 세션 상태 동작을 확인 하 고 세션 저장소에서 데이터 충돌을 방지 하려면 합니다 SessionStateModuleSessionStateStoreProviderBase 을 단독으로 기간에 대 한 특정 세션에 대 한 세션 저장소 항목을 잠그는 잠금 기능을 포함 하는 클래스를 ASP.NET 페이지의 실행 합니다. 경우에도 확인 합니다 EnableSessionState 특성으로 표시 되어 ReadOnly, 동일한 애플리케이션의 다른 ASP.NET 페이지는 저장소의에서 데이터를 여전히 생길 수에 대 한 대기 중인 읽기 전용 세션에 대 한 요청을 잠글 데이터가 될 수 있도록 세션 저장소에 쓸 수 있습니다 해제 합니다.

세션 저장소 데이터 요청에 대 한 호출의 시작 부분에 잠금이 설정 된 GetItemExclusive 메서드. 호출 하는 동안에 잠금이 해제 되는 요청이 완료 되 면를 SetAndReleaseItemExclusive 메서드.

경우는 SessionStateModule 개체를 호출 하는 동안 잠긴된 세션 데이터를 발생 합니다 GetItemExclusive 또는 GetItem 메서드를 다시 요청 세션 데이터를 0.5 초 간격으로 잠금이 해제 되 되거나 크기는 시간까지 세션 데이터를 잠 궜 습니다의 값을 초과 합니다 ExecutionTimeout 속성입니다. 실행 제한 시간 초과 되 면 합니다 SessionStateModule 개체를 호출 합니다는 ReleaseItemExclusive 메서드를 세션 저장소 데이터를 해제 하 고 해당 시점에 세션 저장소 데이터를 요청 합니다.

세션 저장소 잠겨 있으므로 데이터를 호출 하 여 해제할 수는 ReleaseItemExclusive 메서드를 호출 하기 전에 별도 스레드에서 SetAndReleaseItemExclusive 현재 응답에 대 한 메서드를 설정 하 고 있는 데이터를 세션 상태 저장소 해제 시도가 수행 수 이미 해제 되어 다른 세션에서 수정 합니다. 이 상황을 방지 하려면 합니다 GetItemGetItemExclusive 메서드 잠금 식별자를 반환 합니다. 이 잠금 식별자 잠긴된 세션 저장소 데이터를 수정 하는 각 요청에 포함 해야 합니다. 세션 저장소 데이터 저장소에서 잠금 식별자가 제공한 잠금 식별자와 일치 하는 경우에 데이터가 수정 되는 SessionStateModule합니다.

만료 된 세션 저장소 데이터를 삭제합니다.

경우는 Abandon 메서드는 특정 세션을 사용 하 여 데이터 저장소에서 해당 세션에 대 한 데이터가 삭제 됩니다는 RemoveItem 메서드를 세션에 대 한 데이터를 이후 요청을 처리 하려면 세션 데이터 저장소에 유지 하는 고, 그렇지 합니다. 것은 SessionStateStoreProviderBase 만료 된 세션 데이터를 삭제 하려면 구현 합니다.

생성자

SessionStateStoreProviderBase()

SessionStateStoreProviderBase 클래스의 새 인스턴스를 초기화합니다.

속성

Description

관리 도구나 다른 UI(사용자 인터페이스)에 표시하기에 적합한 간단하고 이해하기 쉬운 설명을 가져옵니다.

(다음에서 상속됨 ProviderBase)
Name

구성 중 공급자를 참조하는 데 사용되는 이름을 가져옵니다.

(다음에서 상속됨 ProviderBase)

메서드

CreateNewStoreData(HttpContext, Int32)

현재 요청에 사용할 새 SessionStateStoreData 개체를 만듭니다.

CreateUninitializedItem(HttpContext, String, Int32)

데이터 저장소에 새 세션 상태 항목을 추가합니다.

Dispose()

SessionStateStoreProviderBase 구현에서 사용하는 모든 리소스를 해제합니다.

EndRequest(HttpContext)

요청이 끝날 때 SessionStateModule 개체에 의해 호출됩니다.

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetItem(HttpContext, String, Boolean, TimeSpan, Object, SessionStateActions)

세션 데이터 저장소에서 읽기 전용 세션 상태 데이터를 반환합니다.

GetItemExclusive(HttpContext, String, Boolean, TimeSpan, Object, SessionStateActions)

세션 데이터 저장소에서 읽기 전용 세션 상태 데이터를 반환합니다.

GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
Initialize(String, NameValueCollection)

구성 작성기를 초기화합니다.

(다음에서 상속됨 ProviderBase)
InitializeRequest(HttpContext)

요청별 초기화를 위해 SessionStateModule 개체에 의해 호출됩니다.

MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
ReleaseItemExclusive(HttpContext, String, Object)

세션 데이터 저장소의 항목에 대한 잠금을 해제합니다.

RemoveItem(HttpContext, String, Object, SessionStateStoreData)

세션 데이터 저장소에서 항목 데이터를 삭제합니다.

ResetItemTimeout(HttpContext, String)

세션 데이터 저장소에 있는 항목의 만료 날짜와 시간을 업데이트합니다.

SetAndReleaseItemExclusive(HttpContext, String, SessionStateStoreData, Object, Boolean)

세션 상태 데이터 저장소의 세션 항목 정보를 현재 요청의 값으로 업데이트하고 데이터에 대한 잠금을 해제합니다.

SetItemExpireCallback(SessionStateItemExpireCallback)

Global.asax 파일에 정의된 Session_OnEnd 이벤트의 SessionStateItemExpireCallback 대리자에 대한 참조를 설정합니다.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

적용 대상

추가 정보