inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0

iis 배포 후 view페이지 수정

해결된 질문

132

김대홍

작성한 질문수 2

0

수업한 내용을 바탕으로

visual studio에서 배포를 한 후

배포한 경로로 iis 세팅을 하였습니다~

 

view페이지를 수정 할때마다 iis를 재기동 해야하는 문제가 발생하는데 웹폼처럼 view페이지(자바스크립트부분) 만 수정 할 수 있나요? 만약에 view페이지를 수정할때마다 배포를 하고 iis를 잠시 껐다 켜야하면 실무적으로 사용할 수 없는기술이 아닌가 싶어서요

 

제 질문은 view 페이지의 수정이 빈번하게 발생할때 iis 재기동 없이 업데이트 할 수 있는 방법이 있는지 여쭤보고 싶네요

 

웹폼처럼.. aspx파일만 수정하면 반영됬으면 좋겠는데...

C# mvc rest-api 아키텍처 mssql ef-core asp.net-core

답변 2

0

개발자Park

안녕하세요.개발자park입니다.

답변을 늦게봤네요.죄송합니다.

[1]

프로젝트를 더블 클릭후 아래내용을 붙여넣어주십니다.

<CopyRazorGenerateFilesToPublishDirectory>true</CopyRazorGenerateFilesToPublishDirectory>

image.png

[2]

msdn지침대로 설치해주십니다.

주의상항은 아래 적어놨습니다. ㄱ부터 읽어주시면 됩니다.

관련주제:

Enable runtime compilation for all environments

링크:

https://learn.microsoft.com/en-us/aspnet/core/mvc/views/view-compilation?view=aspnetcore-9.0&tabs=visual-studio#enable-runtime-compilation-for-all-environments

ㄱ]

A]-nuget package설치하기전에, 먼저 프로젝트를 간단하게 게시해줍니다.

B]-HelloASP.deps.json파일을 메모장으로 열어줍니다.

C]-버전을 확인해줍니다.

image.png

D]- 주의사항★위 그림과 nuget package의 버전을 일치시켜줍니다.

msdn에 나오는 package입니다.

image.png

ㄴ program.cs에 다음 내용을 추가해줍니다.

builder.Services.AddControllersWithViews();

builder.Services.AddRazorPages()

.AddRazorRuntimeCompilation();

ㄷ]Views폴더에 들어가서

cs html파일 메모장으로 열어서 내용 변경해주시면 됩니다.

image.png

 

감사합니다.

0

김대홍

답변감사합니다!!

0

김대홍

런타임 컴파일 사용하면 개발환경에서는 좋지만

운영환경에서는 성능이랑 보안 문제 때문에 안 좋다고 하는데요..
그럼 실무에서는 빈번하게 VIew수정이 발생했을땐, 빌드후 IIS재기동 이렇게 밖에 안 되는건가요? - 사용자가 웹페이지를 이용하고 있을땐, 페이지가 오류가 날텐데..

혹시 다른 방법 사용하시는 것이 있을까요?

0

개발자Park

간단한 방법은 위에 설명드린 방법밖엔 저도 모르겠습니다.

azure에서 여러 대의 서버 구성을 통해 해결은 가능하지만,

비용과 관리 포인트가 증가합니다.

관련링크:

https://learn.microsoft.com/en-us/azure/virtual-machines/workloads/oracle/oracle-reference-architecture

감사합니다.

0

개발자Park

아니면 마지막에 다룬 rest api서버와

html파일을 활용하시는 방법도 있습니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 김대홍님.

ASP.NET Core를 IIS에 배포한 후, View 페이지 (특히 자바스크립트 부분)를 수정할 때마다 IIS 재기동 없이 업데이트할 수 있는 방법에 대해 질문 주셨군요.

ASP.NET Core MVC 프로젝트를 배포할 때, 특히 View와 같은 정적 파일의 일부를 수정하고자 할 경우, IIS를 재기동하지 않고 변경 내용을 적용할 수 있는 몇 가지 방법이 있습니다.

  1. 정적 파일 캐싱 방지: 정적 파일에 변경이 있을 때, 브라우저 캐시를 통해 옛 파일이 제공되지 않도록 설정하는 것이 중요합니다. 파일의 이름에 버전이나 고유한 식별자를 추가하여 캐싱을 제어할 수 있습니다. 보통 <script src="app.js?v=1.0">처럼 버전을 명시해주면 브라우저가 매번 새 파일로 인식합니다.

  2. 파일 업데이트를 위한 라이브 리로드 도구 사용: 개발 환경에서는 자주 사용하는 도구들 (예: BrowserSync, LiveReload 등)을 활용하여 변경 사항이 있을 때 자동으로 브라우저에 반영되도록 할 수 있습니다.

  3. IIS 설정 조절: Web.config 파일을 변경하거나 IIS의 응용프로그램 풀을 다시 시작하지 않고도, append 1 stamp 같은 매개변수를 사용하여 파일 변경 시 자동으로 새 버전을 읽도록 설정할 수 있습니다. 정적 파일의 경로에 QueryString 파라미터를 추가하여 브라우저가 매번 최신 파일을 요청하게 할 수 있습니다.

다음 글에서는 그런 해결 방안들에 대해 더 자세히 이야기하고 있습니다:
- ASP.NET Core - Change Static Files Versioning

잘 구성된 환경에서는 실행 완료된 블라블라를 통해 재기동 없이도 수정을 가능하게 할 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

0

김대홍

build 파일에 .cshtml 파일이 없으니 무조건 빌드해서 올려야할거같은데용

20) 16. 저장프로시저 쪽 new MapperConfiguration(cfg => { })

1

54

1

using (SqlConnection ~)을 하는 이유가 뭔가요?

0

115

2

이후 예정된 강의 문의를 드립니다

0

66

1

12_3강 AutoMapper 설명 중에 MapperConfiguration

2

86

1

Business Layer 종속성 추가 불가 문제

0

106

3

Console.WriteLine

0

62

1

8장 Controller 질문

0

80

2

DTO 여러개 대신 하나로

0

174

2

CS0618 SqlConnection

0

261

1

EF로 만든 프로젝트를 개발서버에 올리니, 처음 로딩속도가 많이 느리네요.

0

183

2

SqlConnection관련 질문

0

124

2

12강 듣던중...Controller.cs 질문입니다.

0

128

1

ASP.NET Core MVC를 비동기로 처리하는 이유가 무엇일까요?

0

221

1

프로젝트 배포 질문있습니다

0

147

2

MSSQL 설치 시 오류 발생

0

632

2

클래스 라이브러리 추가시

0

239

1

DB에서 조회된 다건의 데이터를 처리할 때

0

209

1

cshtml.css, cshtml.cs 비하인드 코드 추가 방법

0

416

1

로그인에서 받아온 Session을 활용하고 자 할 때

0

311

1

Request.Query는 배열로는 받을 수 없나요?

0

368

2

Single View Engine은 뭘까요?

0

195

1

Results API가 뭔가요?

0

231

1

QueryString 대소문자 구분

0

455

1

화면 단이 아닌 서비스 단에서 파라미터 추가

0

231

1