2009-12-17 4 views
0

나는 기존 asp.net-mvc 웹 응용 프로그램을 리팩터링하고 mvc-turbine을 도입하려고합니다.
응용 프로그램은있는 그대로 작동하지만 나중에 더 많은 유지 보수가 가능하도록 플러그 인 가능하게 만들고 싶습니다.http 응답 본문에 갑자기 많은 횡령이 포함되어있는 이유는 무엇입니까?

리팩토링 단계를 가능한 한 작게 유지하려고 했으므로 MvcTurbine, MvcTurbine.Unity 및 MvcTurbine.Web을 참조했습니다.
그럼 난 global.asax.cs 내 MvcApplication했다는 다음과 같습니다 : 나는 위해 Application_Start를 호출 실현

Public class MvcApplicatoin : TurbineApplication{ 
    static MvcApplication(){ 
     ServiceLocatorManager.SetLocatorProvider(() => new UnityServiceLocator()); 
     Application_Start(); 
    } 
    <snip of all code that hasn't changed/> 
} 

가기로되어 어떻게하지,하지만 가능한 한 작은 첫 번째 단계에 대한 변경 내용을 유지할 것 .
이제 실행하면 컨트롤러의 코드가 정상적으로 실행되고 올바르게 실행되는 것을 볼 수 있습니다. 그렇다면 내 견해가 렌더링되고 있습니다. 나는 각 라인을 밟을 수 있고 아무런 문제도 없다. 결과가 브라우저에 표시됩니다. 횡설수설합니다.
í½ I%&/mÊ{JõJ×àt¡ $ Ø @ ìÁÍæìiG #)«* ÊeVe] F @ Ìí¼ ÷ Þ {ï½의 ÷의 Þ
등, 그 전체 페이지입니다.

Turbine이 없으면이 문제가 발생하지 않았으며 이전 테스트에서 Turbine을 처음부터 도입 할 때 어떤 문제도 발생하지 않았습니다.
어떻게 디버깅을 시작할 수 있습니까?

답변

2

저는 어떻게 든 출력을 두 번 gzipping한다고 말하고 싶습니다. Application_Start()가 .cctor에서 호출되고 ASP.NET 엔진에서 호출 된 후로드 된 Response.Filter 및 HttpModules를 확인하십시오.

또는 그 다른 문제, 그래서 당신이

+0

예, 저도 처음 생각했습니다. 따라서 압축 모듈에 대한 참조를 제거하고 web.config에서 모든 추적을 제거했습니다. 아무 소용이 없다 : s –

+0

변경 후 캐시를 지우셨습니까? – Gonzalo

+0

응용 프로그램을 다시 시작 했습니까? – Gonzalo

1

터빈은 응용 프로그램에 어떠한 압축을 추가하지 않습니다 ;-) 설치 클링 온 글꼴이 있는지 확인하십시오.

그러나 Application_Start 메서드의 경우 정적 생성자 내에서 호출하면 안됩니다.

대신에 시작 방법을 무시하고 여기에서 논리를 수행해야합니다. 그러나 이것은 응용 프로그램에 대해 구성한 IServiceLocator에 대한 액세스 권한을 부여하지 않습니다. IServiceLocator가 필요한 경우 PostServiceLocatorAcquisition 메서드를 재정의하면 ServiceLocator 속성을 사용하여 해당 메서드에 액세스 할 수 있습니다.

도움이 되었기를 바랍니다.

+0

정보 주셔서 감사합니다. 더 나은 방법을 들여다 보지는 못했지만 application_start를 호출하는 것이 올바른 방법이 아니라고 생각했습니다. 그러나 리팩토링을 작은 단계로 수행하려고 노력 중입니다. 아키텍처 개선에 관련된 몇 가지 작업이 있기 때문입니다. 그것은 나의 첫 번째 커다란 프로젝트 중 하나 였고 이제는 최적이 아닌 디자인 선택을위한 가격을 지불하고 있습니다. 나는 길을 따라 당신의 충고를 사용할 것이다 :) –