2017-04-13 11 views
4

일부 .NET Core 응용 프로그램을 프로덕션 환경으로 이전하려고합니다. 이전 .NET Framework를 사용하면 언제든지 응용 프로그램의 코드에 대해 컴파일 된 DLL을 업데이트 할 수 있습니다..NET 핵심 응용 프로그램을 "게시"할 수있는 방법이 있습니까?

다음에 응용 프로그램 풀이 재활용되면 새 코드가 생기거나 수동으로 응용 프로그램 풀을 재활용 할 수 있습니다.

.NET Core에서는 실행중인 응용 프로그램이 DLL을 잠그고 프로세스가 비활성 상태로 닫히거나 작업 관리자 (여기의 Window 서버)를 통해 종료 될 때까지 덮어 쓸 수없는 것으로 보입니다.

모든 사용자에 대해 유지 관리 창을 설정하지 않고 새 버전을 게시하는 것이 더 좋은 방법입니까? IIS 8을 통한 .NET Core 프레임 워크와 관리 코드가없는 App Pool을 실행하는 Windows 2012 R2 서버에 있습니다.

+1

FYI : ASP.NET Core + IIS는이 모듈 (https://github.com/aspnet/AspNetCoreModule)로 처리됩니다. 그들이 추가 할 수있는 멋진 기능 일 수 있습니다. – natemcmaster

답변

3

ASP.NET의 경우 Kestrel과 함께 호스팅되는 코어는 별도의 프로세스에서 실행되며 IIS는 역방향 프록시처럼 작동합니다. 그래서 당신이 당신의 응용 프로그램을 구현하지 않는 한 DLL을 릴리스 할 방법이 없습니다.

Set up a hosting environment for ASP.NET Core on Windows with IIS, and deploy to it 섹션 배포 응용 프로그램, 항목 4

당신이 다운 타임을 설정 같은 세트 IIS에서 간단하게 설정 두 개의 웹 사이트를 피하기 초 웹 사이트의 갱신을 먼저 내려 놓고, 초 시작합니다.

+0

나는이 시도하고 두 개의 디렉터리를 나란히, 다음 새 경로를 변경하고 있습니다. 두 방법 모두 현재 스레드를 모두 종료하고 새로운 프로세스를 시작하므로 모든 현재 요청에 대해 500 개의 오류가 발생하므로 이상적인 해결책은 아닙니다. 가장 좋은 것은 조용한 기간 동안 복사를 시작하고 잠글 때까지 기다린 다음 응용 프로그램 풀을 재활용하고 복사본을 계속 유지하는 것입니다. 마우스와 손가락이 어리석은 경우 대개 시간 내에 복사됩니다. – RemarkLima