[deployment] IIS 7 사이트를 다른 서버로 어떻게 마이그레이션합니까?

웹 사이트를 다른 서버로 이동하는 가장 좋은 방법이 무엇인지 궁금합니다 (모든 설정 포함).

  • 새 서버에서 사이트를 수동으로 다시 만듭니다 (명백한 이유로 유지 관리 할 수 ​​없음)
  • applicationHost.config 설정 파일 복사
  • appcmd를 사용하여 백업 및 복원 만들기
  • MSDeploy를 사용하여 새 컴퓨터에 사이트 게시
  • 타사 도구 사용

다른 사람들의 경험이 무엇인지 궁금합니다.



답변

IIS 관리자에서 서버 구성을 내 보냅니다.

  1. IIS 관리자에서 서버 노드를 클릭합니다.
  2. “관리”에서 공유 구성으로 이동합니다.
  3. “구성 내보내기”를 클릭합니다. (인터넷으로 전송하는 경우 암호를 사용할 수 있으며 USB 키를 통해 이동하려는 경우 땀을 흘리지 마십시오.)
  4. 이 파일을 새 서버로 이동

    administration.config
    applicationHost.config
    configEncKey.key
    
  5. 새 서버에서 “공유 구성”섹션으로 돌아가 “공유 구성 활성화”를 선택합니다. 이러한 파일의 실제 경로에 위치를 입력하고 적용하십시오.

  6. 암호화 암호 (설정 한 경우)를 입력하고 IIS를 재설정해야합니다.

BAM! 가서 맥주 마셔!


답변

MSDeploy는 IIS 팀이 권장하는 모든 콘텐츠, 구성 등을 마이그레이션 할 수 있습니다. http://www.iis.net/extensions/WebDeploymentTool

패키지를 만들려면 다음 명령을 실행합니다 (기본 웹 사이트를 웹 사이트 이름으로 대체).

msdeploy.exe -verb:sync -source:apphostconfig="Default Web Site" -dest:package=c:\dws.zip > DWSpackage7.log

패키지를 복원하려면 다음 명령을 실행하십시오.

msdeploy.exe -verb:sync -source:package=c:\dws.zip -dest:apphostconfig="Default Web Site" > DWSpackage7.log


답변

다음은 appcmd를 사용하여 사이트 구성을 내보내거나 가져 오는 방법에 대한 유용한 웹 사이트입니다.
http://www.microsoftpro.nl/2011/01/27/exporting-and-importing-sites-and-app-pools-from-iis-7-and-7-5/


답변

Microsoft Web Deploy v3 는 모든 파일, 구성 설정 등을 내보내고 가져올 수 있습니다. 모든 파일을 새 서버로 가져올 준비가 된 zip 아카이브에 저장합니다. 최신 버전의 IIS (v7-v8)로 업그레이드 할 수도 있습니다.

http://www.iis.net/extensions/WebDeploymentTool

도구 설치 후 :
IIS 관리 콘솔에서 서버 또는 웹 사이트를 마우스 오른쪽 버튼으로 클릭하고 ‘배포’, ‘애플리케이션 내보내기 …’를 선택하고 내보내기를 실행합니다.

새 서버에서 동일한 방법으로 내 보낸 zip 아카이브를 가져옵니다.


답변

appcmd를 사용하여 하나 또는 모든 사이트를 내 보낸 다음 새 서버로 다시 가져옵니다. iis7.0 또는 7.5 일 수 있습니다. appcmd를 사용하여 내보낼 때 암호가 해독 된 다음 다시 가져 와서 다시 암호화됩니다.


답변

담당자 부족으로 댓글을 달 수 없습니다. 또 다른 제안자는 IIS의 하위 버전에서 상위 버전으로 마이그레이션 할 수 없다고 말했습니다. 일부 파일을 병합하지 않은 경우에도 해당되지만, chews가 게시 한 답변을 사용하여 IIS 7.5 사이트를 IIS 8.0으로 마이그레이션 한 것처럼 가능합니다.

내보내기가 생성되면 (II7.5) IIS7.5 서버의 리소스에 대한 참조가있는 두 개의 키 파일 (administration.config 및 applicationHost.config)이 있습니다. 예를 들어 DLL은 7.5에 특정한 공개 키 및 버전으로 참조됩니다. IIS8 서버에서는 동일하지 않습니다. 기능 구성도 다를 수 있습니다 (내가 동일하다는 것을 확인했습니다). 8에는 7.5에는 존재하지 않을 몇 가지 새로운 기능이 있습니다.

두 파일을 병합 할 정도로 용감하다면 작동합니다. IIS를 망쳐 서 한 번 제거해야했지만 두 번째로 설치했습니다.

나는 병합 도구 (비교를 넘어서)를 사용했고 동등한 것이 없으면 거대한 PITA가 될 것이지만 좋은 비교 도구 (5 분)를 사용하면 꽤 쉬웠습니다.

병합을 수행하려면 가져 오기를 시도하기 전에 8.0 파일을 내 보낸 7.5 파일과 비교해야합니다. 대부분의 경우 8.0 파일은 내 보낸 7.5 파일의 서버 관련 항목을 덮어 쓰고 사이트 / 앱 풀 관련 항목은 그대로 두어야합니다.

Administration.config가 거의 동일하고 많은 항목의 버전 정보가 없다는 것을 알았습니다. 이것은 쉬웠습니다.

applicationHost.config에는 훨씬 더 많은 차이점이 있습니다. 일부 항목은 순서가 다르지만 그렇지 않으면 동일하므로 각 차이점을 골라서 파악해야합니다.

병합하기 전에 7.5 내보내기 파일을 System32 \ inetsrv \ config \ Export 폴더에 넣었습니다.

위에서 언급 한 두 파일 모두에서 System32 \ inetsrv \ config 폴더를 System32 \ inetsrv \ config \ Export 폴더로 병합했습니다. 사이트 별 태그 / 요소 (예 : applicationPools, customMetadata, 사이트, 인증)를 제외한 FROM 파일의 모든 항목을 푸시했습니다. 특히, 내가 유지해야하는 사이트 별 “위치”태그 블록도 많았지 만 새 서버에는 유지해야하는 서버 별 기본값이있는 자체 “위치”태그 블록이있었습니다.

마지막으로, 서비스 계정을 사용하는 경우 이러한 캐시 된 암호는 정크이므로 앱 풀에 다시 입력해야합니다. 내 사이트 중 어느 것도 처음에는 작동하지 않았지만 필요한 것은 모든 앱 풀에 대한 암호를 다시 입력하는 것이었고 실행 중이었습니다.

댓글을 달 수있는 사람이이 게시물을 쓰레드 아래로 언급하면 ​​복잡한 구성으로 하나의 서버에 많은 사이트를 보유한 저와 같은 다른 사람에게 도움이 될 것입니다.

문안 인사,

스튜어트


답변

제 경우에는 파일이 이미 복사되었으므로이 가이드의 단계를 따르는 가장 쉬운 방법을 찾았습니다. https://www.ryadel.com/en/exporting-importing-app-pools-and-websites-configuration-between -다중 IIS 인스턴스 /

AppPools / Websites를 내보내고 xml 파일을 대상 서버에 복사하고 AppPools를 가져온 다음 웹 사이트를 가져 왔습니다. 아주 잘 작동했습니다. 이것은 또한이 질문에 대한 또 다른 훌륭한 옵션입니다.