2011-09-27 1 views
1

IIS 7.5의 ApplicationPoolIdentity를 사용하여 Northwind 데이터베이스와 함께 SQL Server 2008 R2 Express에 연결하는 데 문제가 있습니다. 다음과 같은 오류 메시지의 결과 :SQL 2008 + IIS 응용 프로그램 풀 : 사용자의 로컬 응용 프로그램 데이터 경로 검색에 실패하여 SQL Server의 사용자 인스턴스를 생성하지 못했습니다.

Failed to generate a user instance of SQL Server due to failure in retrieving the user's local application data path. The connection will be closed.

사항 : 윈도우 7/VS를 사용

  • 미안 2010/IIS 7.5/SQL 서버 2008 R2 익스프레스 (동일한 시스템에있는 모든) .
  • 내 사이트는 "ASP.NET v4.0"응용 프로그램 풀을 사용하고 있습니다.
  • ASP.NET v4.0 응용 프로그램 풀이 ID로 ApplicationPoolIdentity를 사용하고 있습니다.
  • SQL Server 2008 R2 Express에는 서버 역할 sysadmin이 부여 된 로그인 "IIS APPPOOL \ ASP.NETv4.0"이 있습니다.
  • Northwind 데이터베이스에는 사용자 "IIS APPPOOL \ ASP.NET v4.0"이 다음과 같은 permation으로 구성되어 있습니다. db_accessadmin, db_backupoperator, db_datareader, db_datawriter, db_ddladmin, db_securityadmin;
  • w3wp.exe 프로세스가 "IIS APPPOOL \ ASP.NETv4.0"사용자와 함께 실행되고 있습니다.
  • 사용자 프로필 폴더가 만들어 졌음을 알 수 있습니다 (C : \ Users \ ASP.NET v4.0).
  • 동일한 문제가 응용 프로그램 풀 "DefaultAppPool"을 사용하여 발생합니다.

ApplicationPoolIdentity 사용자를 데이터베이스에 액세스 할 권한이있는 다른 사용자로 변경하면 작동합니다.

추가 정보 :

연결 문자열 :

<connectionStrings> 
    <add name="NorthwindEntities" connectionString="metadata=res://*/NorthwindModel.csdl|res://*/NorthwindModel.ssdl|res://*/NorthwindModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=NOTEBOOK\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" /> 
</connectionStrings> 

은 누구도 날이 문제를 해결하는 데 도움이 수

?

감사합니다. 이 IIS7.5에서 ApplicationPoolIdentity 계정에 대해 작동하지 않습니다

 
AttachDBFilename=|DataDirectory|xxxxxx.mdf;User Instance=true 

:처럼 당신이 SQL 서버 익스프레스의 "user instancing" 기능을 사용하려는 것 같습니다

+0

연결 문자열을 게시 할 수 있습니까 (암호를 XXXX로 만드십시오). – Kev

답변

1

, 즉 연결 문자열 보인다. 자세한 내용은이 MS 기술 자료 문서를 참조하십시오 비주얼 스튜디오 2005에 내장

Problems with SQL Server Express user instancing and ASP.net Web Application Projects

웹 응용 프로그램, 비주얼 스튜디오 2008, 또는 비주얼 스튜디오 2010와 그 중 하나가 SQL Server Express에 2005 사용자 인스 턴싱에 의존 또는 SQL Server Express 2008은 새 응용 프로그램 풀 ID와 함께 작동하지 않습니다. 이러한 제품은 개발되었으며 이전 NETWORK SERVICE 계정으로 실행되는 응용 프로그램 풀에 대해 의 테스트를 거쳤습니다.

또한 마이크로 소프트 discourage 지금이 기능을 사용 :

이 기능은 마이크로 소프트 SQL Server의 이후 버전에서 제거 될 예정입니다. 새로운 개발 작업에서는이 기능을 사용하지 말고 에 현재이 기능을 사용하는 응용 프로그램을 수정하십시오.

아직 수행하지 않았다면 프로덕션 환경에서와 같이 attach SQL Express에 데이터베이스를 연결하고 일반 SQL 연결 문자열을 사용합니다. 그 대화의 다음 탭에서뿐만 아니라 구성되어

enter image description here

을 그리고 포트 1433을 확인하십시오 당신은 이미 활성화되어 있지 않은 경우 SQL Server 구성 관리자를 사용하여 SQL Express 인스턴스에 대한 TCP/IP를 활성화해야 .

+0

답장을 보내 주셔서 감사합니다.하지만 이상한 점은 사용자 인스턴스 (원래 게시물의 추가 정보 참조) 나 데이터베이스 (mdf 파일)를 사용하지 않고 있다는 것입니다. 나는 엔터티 프레임 워크와 함께 정규 연결 문자열을 사용하고 있습니다. – outlookrperson

+0

문제가 해결되었습니다. 원인은 비록 내가 main 데이터베이스 (northwind)에 SQL 사용자 인스턴스를 사용하지 않고 aspnetdb를 수행한다는 것이다. 나는 그것을 깨닫지 못했다. 그래서, 나는 방금 SQL 익스프레스에 aspnetdb를 첨부하고 다 괜찮 았어. 감사. – outlookrperson

+0

@rperson - 아하! 그 ASPNETDB 연결 문자열은 약간 비 교적입니다. :) – Kev

관련 문제