는, 나는 내가 생각하는 것은 불안정한 코드 발견했습니다면도기보기 경쟁 조건
public override ViewEngineResult FindView(ControllerContext controllerContext, string viewName, string masterName, bool useCache)
{
ViewLocationFormats = AddViewDynamicFormat(controllerContext, viewName).ToArray();
AreaViewLocationFormats = AddAreaViewDynamicFormat(controllerContext, viewName).ToArray();
return base.FindView(controllerContext, viewName, masterName, useCache);
}
내 관심사는 두 개의 요청이 동시에 "처리되는 경우 , "첫 번째는 필요에 따라 위치 형식을 설정하지만 사용하기 전에 두 번째 스레드 요청은 위치 형식을 다른 방식으로 설정할 수 있습니다. 나머지는 추악해진다.
이 문제가 유효한가요? 다르게 말하자면, ASP.NET MVC는 Razor View 엔진이 한 번에 정확히 하나의 요청을 처리하도록 보장합니까? 나는 그것이 사실이라고 의심한다.
이와 마찬가지로, 면도기 뷰 엔진이 하나 인 경우 요청 당이면 괜찮습니다. 그러나 나는 또한 그것이 사실이라고 믿지 않는다.
업데이트 나는 이것이 경쟁 조건임을 확인했습니다. 나는 또한 경쟁 조건없이 문제를 해결하는 dynamic expansive razor search example을 보여주는 기사를 찾았습니다. (하지만 여전히 캐싱 문제가 있는지 궁금합니다.)
그래서 ... 이걸로 무엇을 이루고자합니까? 어쩌면 다른 솔루션이 필요합니다. – ivowiblo