이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 14502|회답: 0

[ASP.NET] Styles.Render는 runAllManagedModulesForAllRequests=true 개념을 유발합니다

[링크 복사]
게시됨 2016. 10. 13. 오후 3:02:09 | | |
이전 글에서 해결되지 않은 또 다른 레거시 문제가 있습니다. ASP.NET 즉, MVC MapRoute .htm이 작동하지 않는다는 점입니다. runAllManagedModulesForAllRequests="true"를 사용하지 않으면 어떻게 해결하나요? 나중에 해결책을 찾았습니다:



참고: ASP.NET MVC: .html 요청을 MVC 경로로 라우팅하기.

runAllManagedModulesForAllRequests="true"를 사용하지 말아야 하는 이유에 대해 논의했고, 관련 기사 두 개를 찾았습니다:

단순함의 예술: 웹 애플리케이션 성능 최적화: runAllManagedModulesForAllRequests="true"를 사용하지 마세요.
MVC 라우팅을 작동시킬 때 runAllManagedModulesForAllRequests="true"를 사용하지 마세요
본문에 있는 설명에서 발췌:

이 강력히 추천하는 해결책은 다른 문제를 일으킬 수 있습니다. 이 문제들은 등록된 모든 HTTP 모듈이 관리 요청뿐만 아니라 모든 요청에서 실행되어야 한다는 점(예: .aspx)에서 발생합니다. 즉, 모듈은 모든 .jpg .gif .css .html .pdf에서 실행됩니다.

runAllManagedModulesForAllRequests 는 IIS 모듈과 요청의 채널 스위치와 같습니다. 이 스위치가 켜져 있으면 이 사이트에 접근하는 모든 요청이 모듈로 들어가 처리하게 되며, 여기에는 일부 정적 파일 요청도 포함됩니다. 이는 가장 흔한 "처리할 필요 없음" 요청 유형이기도 합니다. 왜냐하면 요청이 모듈에 들어가면 해당 프로그램이 처리해야 하기 때문입니다. 이로 인해 불필요한 성능 부담이 발생하는데, 정적 파일은 단지 표시용이라 모듈 처리가 전혀 필요 없고, 작은 사이트는 중요하지 않습니다. 일부 대형 태양광 사이트가 같은 작업을 하면 IIS의 모듈 프로그램 처리에 '압박'이 가해집니다. 위 블로그 글에서 요약한 결론은 낭비(낭비... ) 그리고 퍼텐셜(퍼텐셜... )。

runAllManagedModulesForAllRequests의 다양한 구성에서 어떤 요청이 기록되는지 Application_BeginRequest 테스트하고, 샘플 코드를 테스트해 봅시다:


runAllManagedModulesForAllRequests="fasle", data.txt log:
http://localhost:55127/
http://localhost:55127/bundles/test2?v=2Fz3B0iizV2NnnamQFrx-NbYJNTFeBJ2GM05SilbtQU1
http://localhost:55127/bundles/test1?v=MDbdFKJHBa_ctS5x4He1bMV0_RjRq8jpcIAvPpKiN6U1

runAllManagedModulesForAllRequests="true", data.txt record:

http://localhost:55127/
http://localhost:55127/bundles/test2?v=2Fz3B0iizV2NnnamQFrx-NbYJNTFeBJ2GM05SilbtQU1
http://localhost:55127/bundles/test1?v=MDbdFKJHBa_ctS5x4He1bMV0_RjRq8jpcIAvPpKiN6U1
http://localhost:55127/Content/logo_small_1.gif
http://localhost:55127/Content/logo_small_4.gif
http://localhost:55127/Content/logo_small_2.gif
http://localhost:55127/Content/logo_small_3.gif

logo_small_* 이미지는 제가 뷰에 추가한 것이고, 정적인 이미지를 테스트하기 위한 요청일 뿐입니다. 큰 사이트라면 테스트 코드를 추가한 후 페이지를 새로고침하면 의미 없는 요청이 많다는 것을 알게 될 것입니다. 위의 테스트 기록을 보면 문제를 설명하지 못하는 것 같지만, 만약 정적 파일이 많은 사이트에 방문 수가 수천만 건이며, 사이트에 많은 페이지가 있다고 상상해 보세요. 비록 작은 문제이지만 무한히 확대되어 결국 단순히 설정 문제임을 알게 됩니다.

됐어, 코드를 바꿀게.





이전의:정렬을 위한 C# 사전 키
다음:asp.net MVC 경로 내 정적 자원에 대한 접근
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com