2012-04-28 3 views
2

영화 티켓 예약 시스템을 만들었으므로 다른 컴퓨터에 배포해야합니다. 데이터베이스에 문제가 있습니다. 내 컴퓨터를 다른 컴퓨터에 배포하면 설치가되었지만 SQL 서버가 없어서 작동하지 않습니다. 그래서 SQL 서버를 설치했습니다. 하지만 여전히 그것은 내게 서버 이름 매개 변수가 내가 SqlConnection 준 문제를 보여 주었다. 저기서 변화를 만들었 어. 이제 다시 데이터 바인딩 문제가 있습니다.데이터베이스와 함께 다른 컴퓨터에 소프트웨어를 배포해야합니다.

나는 모든 것을 계속해서 바꾸는 것에 지긋 지긋합니다. 이것에 대한 간단하고 효율적인 솔루션이 있습니까? 그것의 아주 긴급한. 저 다음을 달성

도움말 :

  • 내가 그것을 배포 할 때 프로젝트와 함께 데이터베이스를 제공.

  • 다른 컴퓨터에 데이터베이스를 연결하면 기존 데이터 바인딩을 사용하고 싶습니다.

  • 나는 모든 연결에 대해 데이터베이스 서버 이름을 반복해서 변경하고 싶지 않습니다. 내가 그것을 배포 할 때

+2

영화 예약 시스템을 만드는 경우 SQL Server 인스턴스 하나 (예 : 서버)를 가져 와서 모든 클라이언트 응용 프로그램에서 네트워크를 통해 가리 키지 않아야합니까? 모든 컴퓨터에 SQL Server를 설치할 필요가 없습니다. – Polynomial

+0

새로 설치된 컴퓨터에서 SQL 서비스가 실행되고 있는지 확인 했습니까? –

+0

지금 서버/인스턴스 이름은 어디에서 가져 왔습니까? 구성 파일은 일반적인 방법입니다. 데이터베이스가 어디에 있는지 알 필요가 없으면 코드에 상관 없습니다. 그것은 당신이하고있는 일에 현명한 배치가 될 수있는 잠재적 인 다른 문제들이 있다고 말했습니다. –

답변

0
  • 프로젝트와 함께 데이터베이스를 제공.

데이터베이스와 GUI 모두 '원 클릭'설치가 어렵습니다. 그러나 배포 항목을 버전 관리하거나 타임 스탬프를 사용하여 항목을 함께 보관할 수 있습니다. 소스는 롤백 할 수 있도록 해당 항목을 제어하고 필요할 때마다 필요한 버전을 가져옵니다. 배포를 하나의 단위로 연결하기 위해 GUI 구성 요소와 함께 버전 번호 또는 타임 스탬프를 묶는 방법이 있습니다.

예를 들어 변경 db 스크립트 (FooTable v100, v101, v102)를 버전 화하거나 타임 스탬프를 적용한 다음 소스 제어로 체크인 할 수 있습니다. 여러 유형의 구성 데이터베이스에 다양한 연결을 저장하십시오. 내 작업에서는 SharePoint 목록을 사용하여 배포 항목을 항목별로 지정하고 SharePoint 목록 항목 참조를 사용하여 특정 변경 사항에 대한 모든 다른 항목을 함께 참조합니다. 모든 것이 통제 된 소스이므로 필요에 따라 특정 변경 사항에 대한 배포 항목을 쉽게 파악하고 검색 할 수 있습니다. 내가 다른 컴퓨터에 내 데이터베이스를 연결하면

  • , 나는 바인딩 기존
    데이터를 사용하고 싶습니다.

  • 내가 만든 연결마다 데이터베이스 서버 이름을 몇 번이고 변경하고 싶지 않습니다.

당신은

데이터 원본 = myServerAddress 같이 신뢰할 수있는 연결을 사용하는 연결 문자열을 사용할 수 있습니다 초기 카탈로그 = MYDATABASE; 통합 보안 = SSPI;

그래서 각 환경에 다른 사용자 이름과 PW를 포함 할 필요가 없습니다. 각 환경 서버의 machine.config 또는 web.config에 서버 및 데이터베이스 이름을 저장할 수 있습니다.초기 카탈로그 = myDevDataBase; 통합 보안 = SSPI

그래서 DEV에서 ConnectionString을이

데이터 원본 = myDevServer 될 수있다;

시험에

:

데이터 원본 = myTestServer; 초기 카탈로그 = 다음 MyTestDatabase; 통합 보안 = SSPI;

서버의 구성 파일에 저장하면 패키지 내에서 변경할 필요가 없습니다.

패키지와 함께 해당 설정을 저장해야하는 경우 배치하는 환경에 따라 설정을 동적으로 변경하는 기술을 사용해야합니다. 예를 들어, 환경 변수를 사용하여 현재 환경을 판별하여 구성을 동적으로 변경하기 위해 실행할 코드를 알 수 있습니다. 또는 코드 대신 XSLT를 사용하여 XML 구성을 변경할 수 있습니다. MSI에서 설치/제거시 실행할 수있는 사용자 지정 작업이 있습니다. 배치시 필요에 따라 구성을 변경하기위한 코드를 추가 할 수 있습니다.

마찬가지로 데이터베이스 스크립트 자체는 배포 할 환경에 따라 변경할 수 있습니다. SQLCMD 변수를 사용하여 SQL 코드를 동적으로 변경할 수 있습니다 (특히 3 및 4 부분 이름 지정 참조의 데이터베이스 및 서버 이름, 즉 devlinkserver 및 devdb를 바꾸면 devlinkserver.devdb.dbo.foo가 testlnkserver.testdb.dbo.foo로 변경 될 수 있음) SQLCML 변수 포함).

@@ IF SERVER = 'somedevdbserver'

SET를 : linkserver = 'DevDBServer'

@@ 서버는 IF 당신이 배포하는 환경에 따라 필요에 따라 변수 값을 변경할 수 SQLCMDs 스크립트를 사용하여 = 'sometestserver'

SET : linkserver = 'testDBServer'는 등

...

요약하면, 많은 유지 구성은 모든 환경에서 할 수있는 것과 동일합니다. 위에 설명 된 다양한 기술을 사용하여 각 환경에서 다를 필요가있는 부품에 필요한대로 구성을 동적으로 변경하십시오.

관련 문제