MS VisualStudio 2010 Express 및 ASP.NET 개발 서버 http://localhost을 사용하여 ASP.NET MVC2 웹 응용 프로그램을 테스트하고 있습니다.ASP.NET_SessionId 쿠키로 인해 여러 GET 요청시 웹 서버가 느려짐
[HTML 코드]
<img src="/images/thumb_79c7b9f0-5939-43e5-a6d0-d5e43f4e8947.jpg" alt="image">
[라우팅 구성을 다음 ASP.NET 프레임 워크 I는 다음과 같이 동작 방법을 통해 검색되는 이미지의리스트 페이지를 버전 4
인
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
"Image",
"images/{id}",
new { controller = "Image", action = "Picture", id = "" }
);
// [...] other routing settings
}
}
[이미지 컨트롤러]
public class ImageController : Controller
{
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Picture(string id)
{
try
{
return File(ImageBasePath + id, "image/jpeg");
}
catch (Exception)
{
}
}
private string ImageBasePath
{
get { return HttpContext.Request.PhysicalApplicationPath + WebConfigurationManager.AppSettings["dbImageBasePath"]; }
}
}
01]에 Global.asax.cs
실제로 그림 작업 메서드는 이미지를 반환하기 전에 다른 검사를 수행하므로 이것이 작업 메서드를 통해 이미지를 반환하는 이유입니다.
문제는 여기에 세션이 없으면 (즉, ASP.NET_SessionId 쿠키가 localhost에 존재하지 않음) 브라우저가 이미지를 가져 오는 시간이 ASP가 매우 짧은 경우 (~ 10ms)입니다. NET_SessionId 쿠키가 존재하지 않으면 시간은 500ms-1s로 이동합니다. 이것은 모든 브라우저에서 발생합니다.
다양한 테스트를 수행했으며 ASP.NET 응용 프로그램을 통과하지 않고 이미지를 얻으면 ASP.NET_SessionId 쿠키가 로딩 시간에 영향을 미치지 않습니다.
웹 응용 프로그램에 전달 된 ASP.NET_SessionId 쿠키와 함께 여러 HTTP GET 요청이있는 것처럼 보입니다. 응용 프로그램 자체가 상당히 느려집니다.
누구나 그런 이상한 행동에 대한 설명이 있습니까?
감사합니다.
업데이트 위에서 설명한 문제는 IIS7 웹 서버에서도 발생하므로 로컬 ASP.NET 개발 서버에만 해당되지 않습니다.
많은 솔루션에 감사드립니다. 유일한 문제는 SessionState 특성이 ASP.NET MVC3에서만 사용 가능하다는 것입니다. 이것은 저에게 문제가되지 않습니다 - 프로젝트를 MVC3으로 업그레이드 할 수있었습니다. 그러나 MVC2 프로젝트에서 동일한 작업을 수행하는 방법을 알고 있습니까? –
나는이 [article] (http://blog.whiletrue.com/2010/09/asp-net-mvc-sessions-and-concurrent-requests-not-what-youd-expect/)을 보았습니다. MVC2로이를 달성하십시오. 그러나 사람이 바라는대로 앞으로 똑바로 보이지 않습니다. – Codo