2012-03-07 3 views
1

로컬로 실행중인 Visual Studio 2010 프로젝트가 두 개 있습니다. 하나는 클라우드 프로젝트이고 로컬 SQL Express 외에도 Azure 테이블 (개발) 스토리지에 연결되며, 다른 하나는 클라우드 프로젝트가 아닙니다. 두 프로젝트 모두 데이터 바인딩 된 그리드를 통해 aspx에서 직접뿐만 아니라 xsd를 통해 생성 된 유사한 코드를 통해 로컬 SQL Express 데이터베이스에 연결을 시도합니다. 비 클라우드 프로젝트가 제대로 연결되지만 일반적인 오류로 인해 클라우드 프로젝트가 실패합니다.SQL Express 연결 문제

"C : \ Users ... mdf 파일에 자동 이름이 지정된 데이터베이스를 첨부하지 못했습니다. 같은 이름의 데이터베이스 존재하지 않거나 지정된 파일을 열 수 없거나 UNC 공유에 있습니다. "

두 프로젝트는 Web.config 파일에 동일한 연결 문자열을 사용하십시오

내가 잘 명시 데이터베이스에 연결할 수있는 클라우드 프로젝트에서 VS2010 서버 탐색기에서
<add name="WorkoutLogConnectionString1" 
    connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\...mdf; 
    Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" /> 

하지만,이 프로젝트는, 그것을 실행할 때 연결에 실패했습니다. 클라우드 프로젝트는 Web.config의 다른 연결 문자열을 통해 SQL Azure 원격 클라우드 데이터베이스에 연결되기 때문에 연결이 정상적으로 작동합니다.

나는 MS 지원 기사 : http://support.microsoft.com/kb/2002980을보고 프로젝트가 원래 다른 버전의 VS로 만들어져 어쩌면 내 문제를 일으킬 수도 있다고 생각하여 ASP.net 4.0 응용 프로그램 풀에 대한 제안 된 IIS 변경 사항을 만들었지 만 아무 소용이 없습니다.

SQL Express 연결 문자열은 한 프로젝트에서 작동하고 다른 프로젝트에서는 작동하지 않으므로 난어 당황합니다. 다른 구성 요소 나 내가보고 있어야하는 클라우드 프로젝트로서 실패한 프로젝트와 관련된 것이 있습니까?

+0

연결 문자열이 표시되지 않았습니다. ejm

+0

연결 문자열을 표시했습니다.코드 샘플 (특히 HTML로 해석 될 수있는 샘플)을 강조 표시하려면 편집기 툴바에서 코드 버튼 '{}'을 사용하십시오. –

답변

1

데이터베이스를 실제 SQL Server Express 인스턴스에 연결 했습니까? 그렇다면 AttachDbFilenameUser Instance 넌센스를 모두 제거하십시오. 일을 간단하고 일관되게 유지하려면 SQL Authenication을 로컬로 사용할 수 있습니다. 따라서 다음과 같이하면됩니다 :

<add name="WorkoutLogConnectionString1" 
    connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=DatabaseName; 
    User ID=SQLAuthUsername;Password=password" providerName="System.Data.SqlClient" /> 
+0

이것은 바보 같은 질문이지만 User ID와 Password는 무엇이 될까요? 나는 그들이 SQL Azure 계정에 대해 알고 있지만 로컬 DB SSMS에 연결하면 암호없이 PCName \ User를 보여줍니다. 내가 그 (것)들을 시도 할 때, 연결은 실패한다. – ejm

+0

로컬 SQL 사용자 이름과 암호를 만든 경우이를 사용할 수 있습니다. 그렇지 않으면 위의 사용자 ID와 암호 부분 대신에'Integrated Security = True' 부분만을 유지해야합니다. 필자는 Azure와의 일관성을 유지하기 위해 SQL 인증 만 제안 했으므로 원하는 경우 SQL 사용자 이름과 암호를 응용 프로그램에 대한 충분한 권한으로 만들 수있었습니다. 서버 이름 만 변경해야하므로 Azure 계정과 일치시킬 수도 있습니다. –

+0

감사. 일부 SQL Express를 사용하면서 SQL Server 2008 R2를 이상하게 혼합하여 연결 문자열 데이터 원본을 "(로컬)"로 지정해야했습니다. – ejm

2

두 프로젝트를 동시에 (여러 개의 시작 프로젝트) 동시에 실행하려고합니다. 그렇다면 실제로 SQL Express에서 자주 발생하는 문제입니다. 종종 VS 서버 탐색기에서 데이터베이스를 연 경우에도 발생합니다. 동일한 데이터베이스에 여러 응용 프로그램이 액세스하는 경우 SQL Server Express에서 수동으로 데이터베이스를 연결하는 것이 좋습니다. 다음을 수행 할 수 있습니다.

  1. 로컬 SQL Express 인스턴스에 연결하는 SSMS (Sql Server Management Studio).
  2. 이동
  3. 마우스 오른쪽 단추로 클릭 데이터베이스 지점에 -> 완료를 MDF 파일
  4. 에 데이터베이스
  5. 찾아보기를 부착합니다!

이제 연결을 Aaron에서 제안한 연결로 변경하십시오. 일반적으로 지금은 AttachDbFilename과 UserInstance를 사용하는 대신 데이터베이스를 직접 연결하고 SQL Server의 일반 독립 실행 형 인스턴스와 같이 사용하도록 조언합니다. 많은 두통을 저장합니다.

+1

전체 사용자 인스턴스 기능이 더 이상 사용되지 않습니다 ... –

+0

고마워! SSMS에서 mdf 파일 (내 전체 디렉토리 트리를 탐색 할 수 없음)을 찾기 위해 조금 고생했지만 SQL Server DATA 디렉토리로 파일을 옮겼습니다. 모든 것이 정상적으로 작동했습니다. – ejm