ASP.NET 세션 상태를 저장하도록 SQL Server 구성

이 문서에서는 ASP.NET SQL Server 모드 세션 상태 관리를 위해 Microsoft SQL Server 구성하는 방법을 보여 줍니다.

원래 제품 버전: ASP.NET
원본 KB 번호: 317604

요구 사항

다음 목록에서는 필요한 권장 하드웨어, 소프트웨어, 네트워크 인프라 및 서비스 팩을 간략하게 설명합니다.

  • Windows
  • .NET Framework
  • 인터넷 정보 서비스(IIS)
  • SQL Server

ASP.NET SQL Server 세션 상태에 대한 SQL Server 구성

다음 단계에서는 InstallSqlState.sql 및 UninstallSqlState.sql 스크립트 파일을 실행하여 SQL Server 모드 세션 상태 관리를 구성하는 방법을 설명합니다.

  1. SQL 쿼리 분석기에서 파일 메뉴에서 열기를 선택합니다.

  2. 쿼리 파일 열기 대화 상자에서 InstallSqlState.sql 스크립트 파일로 이동한 다음 열기를 선택합니다. 기본적으로 InstallSqlState.sql 다음 폴더 중 하나에 있습니다.

    • system drive\WINNT\Microsoft.NET\Framework\version\
    • system drive\Windows\Microsoft.NET\Framework\version\
  3. SQL 쿼리 분석기에서 InstallSqlState.sql 열리면 쿼리 메뉴에서 실행을 선택하여 스크립트를 실행합니다.

  4. UninstallSqlState.sql 스크립트 파일을 실행하여 SQL Server 모드 세션 상태 관리 구성을 제거하려면 먼저 w3svc 프로세스를 중지해야 합니다. 이렇게 하려면 다음과 같이 하십시오.

    1. Windows 시작 메뉴에서 실행을 선택하고 cmd를 입력한 다음 확인을 선택하여 명령 프롬프트를 엽니다.
    2. 명령 프롬프트에 를 입력합니다 net stop w3svc. w3svc 프로세스가 중지되었다는 확인 메시지가 표시됩니다.
  5. SQL 쿼리 분석기에서 파일 메뉴에서 열기를 선택합니다.

  6. 쿼리 파일 열기 대화 상자에서 UninstallSqlState.sql 스크립트 파일로 이동한 다음 열기를 선택합니다. 기본적으로 UninstallSqlState.sql 다음 폴더 중 하나에 있습니다.

    • system drive\WINNT\Microsoft.NET\Framework\version\
    • system drive\Windows\Microsoft.NET\Framework\version\
  7. SQL 쿼리 분석기에서 UninstallSqlState.sql 열리면 쿼리 메뉴에서 실행을 선택하여 스크립트를 실행합니다.

  8. SQL Server 모드 세션 상태 관리 구성을 제거한 후 w3svc 서비스를 다시 시작해야 합니다. w3svc 프로세스를 다시 시작하려면 명령 프롬프트에 를 입력 net start w3svc 합니다.

애플리케이션의 Web.config 파일 수정

ASP.NET SQL Server 모드 세션 상태 관리를 구현하려면 다음과 같이 애플리케이션의 Web.config 파일의 요소를 수정 <sessionState> 해야 합니다.

  1. 세션 상태가 SQL Server 저장됨을 나타내려면 요소의 <sessionState> 모드 특성을 SQLServer로 설정합니다.

  2. sqlConnectionString 특성을 설정하여 SQL Server 대한 연결 문자열 지정합니다. 예를 들면

    sqlConnectionString="data source=MySQLServer;user id=<username>;password=<strongpassword>"
    

    참고

    사용자 <이름>에는 데이터베이스에서 이 작업을 수행할 수 있는 권한이 있어야 합니다.

수정된 <sessionState> 요소는 다음과 같이 표시됩니다.

<sessionState
    mode="SQLServer"
    sqlConnectionString="data source=127.0.0.1;user id=<username>;password=<strongpassword>"
    cookieless="false"
    timeout="20"
/>

참고

요소 및 연결된 특성 값을 지정할 <sessionState> 때 올바른 대/소문자를 사용해야 합니다. 이 코드는 대/소문자를 구분합니다.

문제 해결

  • UninstallSqlState.sql 스크립트 파일을 실행하기 전에 w3svc 프로세스를 중지하지 않으면 다음 오류 메시지가 표시됩니다.

    현재 사용 중이므로 데이터베이스 'ASPState'를 삭제할 수 없습니다.

  • 관련 세션이 만료된 후 ASPStateTempSessions 테이블의 항목이 제거되지 않으면 SQL Server 에이전트가 실행되고 있는지 확인합니다. SQL Server 작업을 통해 예약된 저장 프로시저를 통해 이 기능을 구현할 수 있습니다. SQL Server 에이전트는 이러한 작업을 관리합니다.

  • 기본 InstallSqlState.sql 및 UninstallSqlState.sql 스크립트 파일을 사용하여 ASP.NET SQL Server 모드 세션 상태 관리를 구성하는 경우 이러한 파일은 기본적으로 SQL Server tempdb 데이터베이스에 ASPStateTempSessionsASPStateTempApplications 테이블을 추가합니다. 또한 SQL Server 다시 시작하면 ASPStateTempSessionsASPStateTempApplications 테이블에 저장된 세션 상태 데이터가 손실됩니다. 서버를 다시 시작할 때 세션 데이터가 손실되지 않도록 영구 SQL Server 세션 상태 관리를 구성하기 위해 대체 스크립트를 실행하는 방법에 대한 자세한 내용은

참조

세션 상태