2014-12-20 3 views
0

간단한 winforms 응용 프로그램을 서비스 기반 DB와 함께 개발했습니다.다른 컴퓨터에 응용 프로그램 배포

내 컴퓨터에서 앱을 실행할 때 제대로 작동합니다. 그러나 앱을 게시하고 다른 컴퓨터에 설치 한 후에는 정상적으로 설치되고 실행되지만 DB에 연결하면 오류가 발생합니다.

연결 아래 문자열을 사용

를 "파일을 자동라는 이름의 데이터베이스를 연결하려는 시도"

static string constr = System.Configuration.ConfigurationManager.ConnectionStrings["MyConString"].ConnectionString; 
     static SqlConnection conn = new SqlConnection(constr); 
:로 연결을 호출

<connectionStrings> 
     <add name="MyConString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\myDB.mdf;Integrated Security=True;User Instance=True" 
      providerName="System.Data.SqlClient" /> 
    </connectionStrings> 

대상 컴퓨터에 SQL Server가 설치되어 있습니다 ...

내가 놓친 것이 있습니까?

+0

내가 그건 당신이받을 실제 오류 메시지 (? "시도") 의심. 다른 머신이 동일한 'DataDirectory |'를 가지고 있고, 그 폴더 안에'myDB.mdf'라는 파일이 있습니까? –

+0

@KenWhite 예 오류가 명시된 바와 같이 게시 할 때 DB를 포함하여 예를 들어 ..하지만 DataDirectory | 부분 어떻게 내가 변수를 만들 수 있습니다 .. Cz 나는 thts 그 멈추는 곳 .. db 경로를 찾을 수없는 것 같아요. –

+1

MS는 실제로 "* AN * 시도"라고 뭔가를 발표? 그들의 QC는 꽤 가난 해졌습니다. 아마도 sloppiness에 대한 버그 보고서를 제출해야합니다. (오타가 존재하지 않는다면받은 메시지가 아닙니다. (내 요점)) DataDirectory는 DB 복사본을 설치할 위치이며 연결 문자열 또는 응용 프로그램 구성 파일에서. 분명히,'C : \ MyAppDir \ MyDB.MDF'를 열려고한다면,'MyDB.MDF' 파일은 대상 컴퓨터의'C : \ MyAppDir'에 있어야합니다. 그렇지 않으면 열지 않아도됩니다 적절한 폴더에서. –

답변

1

데이터 원본 =. \ SQLEXPRESS "." 여기서 로컬 컴퓨터의 SQL 서버 데이터베이스를 의미합니다. 이 응용 프로그램을 다른 컴퓨터에 배포하는 경우 을 변경해야합니다. 로컬 컴퓨터의 IP 주소 (동일한 로컬 네트워크에 있다고 가정)로 이동합니다.

1

데이터베이스가있는 데이터 소스 이름을 변경해야합니다. " 로컬 시스템에 존재 함을 의미합니다. 데이터 소스 이름을 변경하지 않으려면 같은 시스템에 데이터베이스를 두어야합니다.