2016-10-11 4 views
6

웹 사이트를 수동으로 중지하고 시작하지 않고도 IIS 8의 실행중인 사이트에 ASP.NET (핵심) 응용 프로그램을 게시 할 수 있습니까?IIS 8은 ASP.NET 핵심 응용 프로그램 - 파일 사용을 게시합니다.

Visual Studio 2015에서는 파일 사용 중 오류가 계속 발생합니다. 네트워크의 서버에 대한 웹 배포가 끝나면 포트 443으로 서버에서 인증 할 수 없다는 오류가 나타나기 때문에 파일 시스템에 게시를 사용하고 있습니다.

IIS를 사용하지 않아도됩니다. 응용 프로그램 풀을 재활용합니다. 그러나 앱을 계속 내려 놓고 게시 (약 1 분 소요)하고 다시 시작해야만 사용자에게는 좋지 않습니다.

또 다른 옵션은 동일한 응용 프로그램을 실행하는 2 개의 웹 사이트와 같은 것이지만 자동화 가능한 경우에만 해당됩니다. 그런 다음 2 개 중 1 개를 내려 놓고 업데이트하고 두십시오. 두 번째를 내려 놓고 업데이트하고 시작하십시오.

세 번째 옵션은 업데이트 중일 때 응용 프로그램을 업데이트 할 수있는 최신 업데이트 같은 것입니다.

Google 검색에서 좋은 정보를 제공하지 않았기 때문에 누구나 올바른 방향 (일부 블로그 게시물 일 수도 있음)을 알려줄 수 있습니까?

답변

0

"동일한 응용 프로그램을 실행하는 두 개의 웹 사이트"를 언급했습니다. 동일한 앱을 호스팅하는 두 개의 웹 서버를 의미합니까?

이미 웹 서버 (서버 클러스터 또는 웹 팜)가 여러 개있는 경우 클러스터에서 일부 서버를 가져 와서 업데이트 할 수 있습니다. 그것이 우리가 업데이트를 푸는 방법입니다. Citrix의 소프트웨어를 사용하여 서버 팜을 관리합니다. 또한로드 균형 조정을 처리합니다. 이러한 유형의 소프트웨어는 서버를 모니터링 할 수 있으므로 모든 사용자가 최근에 클러스터에서 제거 된 웹 서버에서 "이동"한 시점을 확인할 수 있습니다. 그런 다음 iisreset하고 새 빌드를 배포 한 후 다음 서버 (또는 구성에 따라 서버 세트)로 이동할 수 있습니다. 우리는 20 개 이상의 가상 웹 서버를 보유하고 있습니다. 일반적으로 우리는 처음 절반을 다시 클러스터/팜에 배치 할 때 서버의 절반을 가져 와서 업데이트하고 나머지 절반은 제거합니다. 이것은 중단없는 서비스를 허용해야합니다. 프로세스를 자동화하고 싶습니다. Windows NLB (네트워크로드 균형 조정)를 사용하고 있다고 가정합니다. PowerShell 스크립트를 작성하여 서버 다운을 자동화 할 수 있습니다. 참조는 다음과 같습니다. https://technet.microsoft.com/en-us/library/ee817138

이 문제를 해결할 수있는 것으로 알고 있습니다. ASP.NET 코어에서 앱 풀 재활용이 항상 필요한지 확실하지 않습니다. 나는 명확한 대답을 찾을 수 없었다. 어쨌든 대부분의 프로덕션 응용 프로그램은 둘 이상의 웹 서버에 있어야합니다. 사용자가 많지 않더라도 장애 조치를 위해 여러 개의 웹 서버가 있어야합니다.

1

app_offline.htm이라는 파일을 응용 프로그램 폴더에 복사하면 IIS에서 응용 프로그램을 정상적으로 중지하고 app_offline.htm 파일의 내용을 제공하기 시작합니다. 응용 프로그램이 중지되면 파일을 복사 할 수 있습니다. 파일을 복사 한 후 app_offline.htm 파일을 제거하면 IIS가 응용 프로그램을 시작합니다. VS는 파일 시스템에 배포 할 때 Azure에 배포 할 때 그렇게하지 않습니다.

관련 문제