2011-12-20 6 views
2

는 새로운 MVC3 프로젝트는 나를 위해 다음과 같은 연결 문자열 생성 : \ SQLEXPRESSMVC3 연결 문자열은

<add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" /> 

내 모델 테이블이 에서 만든있어 및 모든 사용자/역할 테이블은 App_Data 폴더의 aspnetdb.mdf에 저장됩니다. 내 모델 테이블과 사용자/역할 테이블을 갖고 싶습니다. \ SQLSERVER 또는 localhost이 아니라. \ SQLEXPRESS와 mdf 파일 사이에 흩어져 있습니다. 나는 올바른 연결 문자열로 고민하고있다. 누구든지 올바른 것을 제안 할 수 있습니까? 이 작업을 수행

모두가 당신에 aspnet_regsql 실행하는 데 필요한 같은 연결 문자열의 이름은 그것은 소리 * DbContext *

+0

다음을 시도해 볼 수 있습니다. Akhil

+0

@Akhil,하지만 처음 카탈로그에 무엇을 사용합니까? 데이타베이스는 아직 존재하지 않습니다. 응용 프로그램이 처음 실행될 때 EF가 데이타베이스를 작성해야합니다. 나는 다음과 같은 예외가 발생했다. asp.net : 로그인으로 요청한 데이터베이스 "Learn1"을 열 수 없습니다. 로그인에 실패했습니다. 'msi-PC \ msi'사용자가 로그인하지 못했습니다. – mishap

+0

그런 경우 InitialCatalog 및 App = EntityFramework 조각이 필요 없습니다. 둘 다 제외하면 효과가 있습니까? – Akhil

답변

1

에서 파생 된 컨텍스트 클래스의 이름이어야합니다 있는지 확인하는 당신의 ApplicationServices 데이터베이스. C : \ Windows \ Microsoft.Net \ Framework \ 4.xxx \ aspnet_regsql.exe에서 찾을 수 있습니다.

기본 프로젝트는 ApplicationServices db를 멤버 자격, 역할 및 프로필의 기본값으로 사용합니다. sproc dbo.aspnet_CheckSchemaVersion은 ASP.NET SQL 멤버 자격 공급자 스키마의 sproc입니다.

응답 당신이 데이터베이스 인스턴스가 컴퓨터 이름 SQLSERVER에서 실행 한 마십시오 # 1

의견을? asp.net에서 연결 문자열을 사용하여 데이터베이스를 찾을 수없는 경우 언급 한 예외가 일반적인 것입니다.

응답 # 말이 2

언급합니다. Integrated Security = true는 SQL Server 로그인을 위해 MVC 응용 프로그램 (일반적으로 IIS 응용 프로그램 풀)을 실행하는 프로세스를 사용하도록 연결에 지시합니다. Visual Studio/Web Developer Express/etc에서 테스트하는 경우 웹 서버는 Windows 계정이있는 프로세스에서 실행될 가능성이 큽니다. 그래서 DB 서버에 대해 윈도우 인증을 할 수 있다면 MVC도 가능해야합니다.

User Instances are meant for SQLEXPRESS.

+0

sqlexpress에서 aspnet_regsql을 실행하여 회원 테이블을 잘 만들었습니다. 이제 \ SQLEXPRESS에서. \ SQLSERVER로 변경하고 SQLEXPRESS 연결을 끊으면 다음과 같은 오류가 발생합니다. SQL Server에 대한 연결을 설정하는 동안 네트워크 관련 또는 인스턴스 관련 오류가 발생했습니다.서버를 찾을 수 없거나 액세스 할 수 없습니다. 인스턴스 이름이 올 바르고 SQL Server가 원격 연결을 허용하도록 구성되어 있는지 확인하십시오. (공급자 : 공유 메모리 공급자, 오류 : 40 - SQL Server에 대한 연결을 열 수 없음). – mishap

+0

Windows 인증을 사용하여 Management Studio에서. \ SQLSERVER에 연결할 수 있으며 심지어 같은 이름의 데이터베이스를 만들었습니다. 그러나이 연결 문자열이 작동하지 않습니다. , 동안. \ SQLEXPRESS 잘 작동합니다 : "초기 이름 = Learn1.Models.MyContext, 통합 보안 ="ProviderName = "System.Data.SqlClient = "/> – mishap