it-swarm-ko.tech

SQL Server의 사용자 인스턴스를 생성하지 못했습니다.

Windows 7 베타를 사용하고 있으며 웹 응용 프로그램을 로컬로 설치하려고합니다. 이 웹 사이트는 Microsoft SQL Server 2005 Express (SQLEXPRESS) 및 웹 사이트의 ~/App_Data 폴더에있는 MDB 파일을 사용합니다. 이 웹 응용 프로그램에 대해 Classic .NET AppPool을 사용하도록 IIS7을 구성하라는 지시를 받았습니다.

웹 사이트가로드 될 때마다 다음 오류가 표시됩니다.

데이터베이스 서버에 연결하는 동안 오류가 발생했습니다. 사용자의 로컬 응용 프로그램 데이터 경로를 검색하지 못하여 SQL Server의 사용자 인스턴스를 생성하지 못했습니다. 사용자가 컴퓨터에 로컬 사용자 프로필을 가지고 있는지 확인하십시오. 연결이 종료됩니다.

인터넷은이 주제에 관한 기사로 가득 차 있습니다. 지배적 인 지혜는 다음과 같습니다.

  1. Local System 계정을 사용하도록 SQL Express 서비스를 구성합니다.
  2. 다음 디렉터리를 삭제합니다. C :\Users\username\AppData\Microsoft\Microsoft SQL Server Data\SQLEXPRESS

이러한 수정 사항 중 어느 것도 영향을 미치지 않았습니다. 나는 몇 시간 동안 권한과 설정을 땜질했습니다. 누구든지 수정을 제안하거나 문제에 대한 자세한 정보를 얻는 방법을 이해하도록 도울 수 있습니까?.

8
Gabe Sumner

IIS Windows 7에서 응용 프로그램 풀을 선택한 다음 "고급 설정"을 선택합니다. "프로세스 모델"에서 "사용자 프로필로드"를 찾아 true로 설정합니다.

이제 SQL이 기본 앱 풀 계정으로로드되어야합니다.

13
Ereck Johan

브라이언,

이 모든 것을 이해하려면 먼저 작업 관리자의 모든 사용자에 대한 프로세스 목록을 살펴보십시오.

w3wp.exe는 새로운 WWW 작업자 프로세스입니다. DefaultAppPool이라는 사용자의 권한을 사용하여 보안 샌드 박스에서 실행됩니다.

예전에는 DefaultAppPool 사용자 대신 IUSR 및 IWAM 사용자였습니다 ( IIS에서 IUSR 및 IWAM 계정은 무엇입니까? 참조).

SQL 멤버 자격 공급자를 사용하는 경우 w3wp.exe 프로세스는 SQL Server 사용자 인스턴스를 시작하고 연결 문자열 (일반적으로 App_Data/ASPNETdb.mdf)에 지정된 데이터베이스에 연결합니다. SQL Server의 사용자 인스턴스를 실행하려면 로컬 프로필이 필요하므로 임시 파일이 이동해야합니다.

문제 해결 단계 :

  1. W3wp.exe 프로세스가 DefaultAppPool 사용자에 의해 실행되는지 확인하십시오.
  2. SQL Server에 사용자 인스턴스가 활성화되어 있는지 확인합니다 ( config_value 및 run_value 참조)
    exec sp_configure 'user instances enabled'
  3. Exec가 아닌 경우
    sp_configure 'user instances enabled', 1
    다음 : 재구성
  4. ASPNETdb.mdf가 SQL Server의 다른 사용자 인스턴스에 의해 연결된 경우 SQL Server를 다시 시작합니다.
  5. 로컬 사용자 프로필 C :\Users\DefaultAppPool 디렉터리가 있는지 확인합니다. 그렇지 않은 경우 LocalProfile = True를 설정하면 로컬 프로필이 생성됩니다. 이 작업은 IIS 관리자, 응용 프로그램 풀, DefaultAppPool, 고급 설정 ...
  6. 데이터베이스에 추가 문제가있는 경우 SQL 구성 관리자를 사용하여 사용자 인스턴스에 연결하고 db가 연결되었는지 확인합니다. 올바른 instance_pipe_name 에 연결해야합니다.
    SELECT 
    owning_principal_name, instance_pipe_name, heart_beat
    FROM
    sys.dm_os_child_instances
    
1
teyc

워크 스테이션에서 동일한 문제가 발생했지만 서버에서는 발생하지 않았습니다.

이것은 웹에서 잠시 동안 찾은 임시 수정이며 작동하는 것 같습니다.

쿼리 편집기에서 다음을 입력합니다. exec sp_configure 'user instances enabled', 1 then : Reconfigure

그런 다음 SQL Server 데이터베이스를 다시 시작하십시오.

링크 오늘 발견

그리고 StackOverflow에 대한 빠른 검색 후 https://stackoverflow.com/questions/281500/error-failed-to-generate-a-user-instance-of-sql-server

1
Brian Boatright