2010-07-26 2 views
5

동일한 CMS와 유사한 프레임 워크를 사용하는 여러 .net 웹 응용 프로그램이 있습니다. 이 핵심 프레임 워크에 새로운 기능을 추가 할 때마다 각 애플리케이션을이 기능으로 업데이트해야합니다. 그래서 기본적으로 나는 다음과 같은 단계를 수행해야합니다 응용 프로그램 루트에.NET 웹 응용 프로그램 자동 업데이트 풀 스타일

  1. 넣어 App_Offline.htm 필요한 경우 업데이트 서버에서
  2. 실행 SQL 업데이트 스크립트를 변경 한
  3. 파일 복사를
  4. 제거 App_Offline .htm

CruiseControl 및 기타 지속적인 통합 도구에 대한 내용은 필자에게 필요한 것과 매우 유사한 기능을 제공합니다. 문제는 푸시 스타일 업데이트를 사용하여 통합 서버가 소스를 빌드 한 다음 프로덕션 서버로 파일을 복사하는 것입니다. 고객이 프로덕션 서버에 액세스 할 수 없기 때문에이 방법을 사용할 수 없습니다. 그래서 내가 필요한 것은 IIS 관리자 나 다른 곳에서 "업데이트"버튼을 클릭하여 클라이언트가 그것을 클릭하고 업데이트 서버에서 데이터를 가져올 수 있도록하는 것입니다. 이것을 달성하기위한 해결책이 있는지 아는 사람이 있습니까?

감사

답변

0

내가했다 접근 방식은 자식의 최신 배포 버전을 끌어 스크립트를 만드는 것이었다, IIS 중지, 복사 새로운 버전 이상, IIS가 시작됩니다. 매우 근사하지만 git 저장소의 유일한 것이 최신 배포 가능 버전이면 작동합니다.

Visual Studio에서 게시 버튼을 설정하여 로컬 git 배포판에 복사 할 수도 있습니다. 그럼 난 그냥 내 dev 컴퓨터에서 밀고 내 대상 웹 서버에 최신 버전을 끌어 내 배포 스크립트를 실행합니다.

질문의 SQL 업데이트 스크립트 부분이 흥미 롭습니다. Rails에서 db 마이그레이션과 비슷한 것을 필요로하는 것 같습니다. 이것은 내가 아직 처리해야했다 일이 아니다하지만 난 당신을 가리 킵니다 : 몇 가지 단계를 수행 I 응용 프로그램 서브 시스템으로 이것을 볼 http://www.infoq.com/news/2009/01/migrations_dotnet

0

:

  1. 일반 응용 프로그램의 최신 버전을 확인
  2. 최신 팩 파일
  3. 의 포장을 풀고의 다운로드를 Perfom하고 새 파일을
  4. 전화 끝에서 모든 SQL 문에서도에게
  5. 을 알리는 SQL 명령 줄을 복사 모두 복사 dll 파일을 bin 폴더

다른 방법이 있지만이 패턴으로 안전하고 소리가 작동합니다.

ASP.NET 내에서 bin 폴더를 업데이트하려면 IIS에서 bin 폴더에 대한 액세스를 허용해야합니다. 따라서 다음과 같이 사용자 지정 권한 집합을 만들어 환경 보안을 조정할 수 있습니다.

<IPermission 
class="FileIOPermission" 
version="1" 
Read="$AppDir$" 
Write="$AppDir$" 
Append="$AppDir$" 
PathDiscovery="$AppDir$" /> 

워크 아웃 파일을이 특수 폴더에 복사 할 수 있습니다.

참조 http://msdn.microsoft.com/en-us/library/ff649312.aspx

  • http://msdn.microsoft.com/en-us/library/ms998341.aspx
  • PS

    1. : 당신이 bin 폴더에 문제를 발견 한 경우. 새로운 버전 파일을 GAC에 복사하고 어셈블리 참조를 web.config 버전으로 관리합니다. 좋은 소리.