나는 이것이 매우 기본적인 질문이라는 것을 알고 있습니다. 누군가가 나를 유머하고 어떻게 처리 할 수 있는지 말해 주면, 나는 위대 할 것입니다.
아래 문제를 해결하기 위해 SynchToy를 설치하려고하기 때문에 이것을 게시하기로 결정했으며 "Toy"를 사용하여 약간 전문가가 아닌 느낌이 들지만 더 나은 방법을 생각할 수 없습니다.
이 상황에 처했을 때 여러 번 아는 것은 고통스럽고 분명한 방법이 없다는 것입니다. 이것은 회사의 유일한 개발자라는 데 있습니다.
- 업무용 컴퓨터에서 개발 된 ASP.NET 웹 응용 프로그램
- 솔루션에는 두 가지 프로젝트가 있습니다.
- 웹 사이트 (파일)
- WebsiteLib (C # / dll)
- Git 리포지토리 사용
- GoGrid 2008R2 웹 서버에 배포
전개:
- 코드를 변경하십시오.
- 힘내로 밀어 넣습니다.
- 원격 데스크톱 대 서버.
- 힘내에서 당겨 라.
- Windows 탐색기로 드래그 / 드롭하여 라이브 파일을 덮어 씁니다.
5 단계에서 웹 사이트 루트에서 모든 파일을 삭제합니다.. 이것은 좋은 일이 아닙니다. 그래서 SynchToy를 설치하려고합니다 ...
업데이트 : 모든 유용한 응답에 감사드립니다. 웹 배포를 사용하는 사이에 답변을 표시 할 것을 선택할 수 없습니다. 몇 가지 유용한 제안이있는 것처럼 보입니다.
- 웹 프로젝트 = 전체 사이트가 단일 DLL로 패키지되어 있습니다-단점은 간단한 업데이트를 푸시 할 수 없습니다-50 대의 회사에서 고독한 개발자이기 때문에 때로는 더 간단한 것입니다.
- SCM에서 사이트의 루트 웹 사이트로 직접 가져 오기-원래 SCM 숨겨진 디렉토리가 노출 될 수 있다는 두려움 에서이 작업을 수행하지는 않았지만 여기에 대한 답변은 여전히 그것을 극복하는 데 도움이되었습니다. 시간이 지나도 여전히 사실인지 확인하는 것을 잊어 버릴 염려가 더 많습니다)
- 웹 팜을 사용하고 노드에 체계적으로 배포-다운 타임 제로에 이상적인 솔루션입니다.이 사이트는 본질적으로 회사의 실시간 수익원이므로 실제로 관심이있는 부분입니다. 서버 비용을 두 배로 늘립니다.
-> 마지막으로, 사이트에 대해 한 번의 클릭으로 배포해야한다는 기본 원칙을 다시 강화하거나 잘못된 것이있을 수 있습니다.
업데이트 2 : 이 문제로 돌아와서 몇 달 동안 존재하고 완벽하게 작동하는 실제 솔루션으로 업데이트한다고 생각했습니다 (단일 웹 서버 솔루션).
내가 사용하는 프로세스는 다음과 같습니다
- 코드 변경
- 힘내다
- 원격 데스크톱 대 서버
- 힘내에서 당겨
다음 배치 스크립트를 실행하십시오.
cd C : \ 사용자 \ 관리자
% systemroot % \ system32 \ inetsrv \ appcmd.exe 중지 사이트 "/site.name : 기본 웹 사이트"
robocopy Documents \ code \ da \ 1 \ work \ Tree \ LendingTreeWebSite1 c : \ inetpub \ wwwroot / E / XF connectionsconfig Web.config
% systemroot % \ system32 \ inetsrv \ appcmd.exe 시작 사이트 "/site.name : 기본 웹 사이트"
보시다시피 사이트가 다운되고 robocopy를 사용하여 변경된 파일을 지능적으로 복사 한 다음 사이트를 다시 시작합니다. 일반적으로 2 초 이내에 실행됩니다. 이 사이트의 최대 트래픽은 초당 약 2 건이므로 사이트 업데이트 당 4 건의 누락 요청이 허용됩니다.
Sit 나는 Git에 더 능숙 해졌다. 위의 첫 4 단계가 "수동 프로세스"인 것도 가능하다는 것을 알았지 만, 원한다면 모든 것을 한 번의 클릭으로 롤백 할 수 있다고 확신한다.