문제

우리는 현재 쿼리 분석기를 통해 데이터베이스를 생성하고 SQL 스크립트를 실행하여 웹 애플리케이션을 배포합니다.그런 다음 "게시 웹 사이트"의 출력을 복사하고 IIS에서 해당 웹 사이트를 설정합니다.

우리는 Visual Studio에서 웹셋업을 본 적이 있지만 그 부분은 문서화가 얇아진 것 같습니다.예를 들어, 사용자에게 SQL 서버의 IP와 비밀번호를 묻는 방법이 명확하지 않습니다.우리는 또한 이런 방식으로 웹사이트를 다음과 같은 폴더 아래에 배포하는 경향이 있습니다. http://example.com/project, 대신에 http://example.com.

그런 다음 AJAX.Net이 설치되지 않거나 일부 또는 다른 패치가 적용되지 않는 문제가 있습니다.

지금까지 우리는 서버에 물리적으로 접근할 수 있었습니다.곧 CDROM을 배송할 예정입니다.수동 개입과 ​​자동화 사이의 실제적인 절충점은 무엇입니까?

도움이 되었습니까?

해결책

Visual Studio 배포를 피하고 최대한 자동화하세요.웹 배포 프로젝트와 NAnt는 당신의 친구가 될 수 있습니다!

간단히 말해서 배포 설정은 다음과 같습니다.

  1. RedGate SQL을 사용하여 개발 데이터베이스와 라이브 데이터베이스 간의 차이점을 스크립팅합니다.

  2. 웹 배포 프로젝트(.wdproj)를 빌드하기 위해 MSBUILD를 호출하는 NAnt 빌드 파일은 컴파일된 결과 웹 앱(SQL 변경 스크립트와 함께)을 압축한 다음 해당 zip 파일을 서버에 업로드합니다.

  3. 서버 측에는 애플리케이션을 오프라인으로 전환하고, 데이터베이스를 백업하고, 웹 사이트를 백업하는 또 다른 NAnt 빌드 파일이 있습니다.SQL 변경 스크립트를 실행하고 새 버전의 압축을 풀고 앱을 온라인으로 가져옵니다.

3단계는 일반적으로 "수동"(한 번의 더블 클릭)으로 실행되지만 때로는 늦은 밤에 실행되도록 예약됩니다.CDROM에서 똑같은 작업을 수행할 수도 있고 아주 작은 Windows Forms 앱을 래퍼로 작성할 수도 있습니다.

관심이 있으시면 NAnt 스크립트에 대한 세부 정보를 제공해 주시면 매우 기쁩니다.

다른 팁

사용해 보셨나요? 웹 배포 프로젝트?에 대한 지원이 있습니다 VS 2008 지금도..

저는 주로 ASP.NET 앱을 Linux 서버에 배포합니다.내 표준 작업 흐름은 다음과 같습니다.

  • Subversion과 같은 소스 코드 저장소를 사용합니다.
  • 서버에는 다음을 수행하는 bash 스크립트가 있습니다.
    • 최신 코드를 확인하세요
    • 빌드를 수행합니다(DLL 생성).
    • 파일을 필수 항목까지 필터링합니다(예: 코드 파일 제거).
    • 데이터베이스를 백업합니다.
    • 현재 날짜로 명명된 디렉터리의 웹 서버에 파일을 배포합니다.
    • 배포에 새 스키마가 포함된 경우 데이터베이스를 업데이트합니다.
    • 새 설치를 기본 설치로 만들어 다음 히트와 함께 제공됩니다.

체크아웃은 명령줄 버전의 Subversion을 사용하여 수행되고 빌드는 xbuild(Mono 프로젝트의 msbuild 작업과 유사)를 사용하여 수행됩니다.대부분의 마법은 ReleaseIt에서 이루어집니다.

내 개발 서버에서는 기본적으로 지속적인 통합이 이루어지지만 프로덕션 측면에서는 실제로 서버에 SSH로 접속하고 스크립트를 실행하여 수동으로 배포를 시작합니다.내 스크립트는 교묘하게 'deploy'라고 불리므로 bash 프롬프트에 이를 입력합니다.나는 매우 창의적입니다.아니다.

프로덕션에서는 'deploy'를 두 번 입력해야 합니다.한 번은 체크아웃하고, 빌드하고, 날짜가 지정된 디렉터리에 배포하고, 한 번은 해당 디렉터리를 기본 인스턴스로 만듭니다.디렉터리에 날짜가 있으므로 관련 디렉터리 내에서 'deploy'를 입력하기만 하면 이전 배포로 되돌릴 수 있습니다.

초기 배포에는 몇 분이 걸리고 이전 버전으로 되돌리는 데 몇 초가 걸립니다.

이는 나에게 좋은 솔루션이었으며 세 가지 명령줄 유틸리티(svn, xbuild 및 releaseit), DB 클라이언트, SSH 및 Bash에만 의존합니다.

언젠가 CodePlex의 ReleaseIt 사본을 업데이트해야 합니다.

http://releaseit.codeplex.com/

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top