2013-06-19 6 views
3

EPiServer 7.1 위에 MVC 4 애플리케이션이 있습니다. EPiServer는 IoC 프레임 워크로서 StructureMap을 사용하는데, 이는 내 문제와 관련이있을 수 있습니다. 어쨌든, 이것은 내가 무엇을했는지 있습니다 :Glimpse가 EPiServer 7.1 MVC 4 NullReferenceException을 throw합니다.

  1. 통해 "Nuget 패키지 관리 ..."내 프로젝트에 "살짝 Mvc4"를 추가
  2. 가 다시 예상대로 Web.config의 업데이트 된 것을 확인 내 응용 프로그램

엿볼를 추가 한 후, 모든 요청은 다음과 같이, 예를 들어 NullReferenceException이, 실패 :

sample error

web.config의 Glimpse 섹션에서 'logging level = "Trace"로 주석을 달아 Glimpse 로깅을 활성화하려고했지만 Windows 이벤트 로그 또는 log4net 로그 파일에서 로깅을 찾을 수 없습니다.

해결 방법에 대한 아이디어 또는 솔루션에 대한 힌트가 있습니까?

+0

엿볼 로그는 사이트의 루트 폴더에있는 'glimpse.log' 파일에 나타나야합니다. 아직 EPiServer 7.1을 훑어 보지 못했지만, 오늘 나중에 이것을 시도해 볼 것입니다. – PhilPursglove

+0

의견을 보내 주셔서 감사합니다. 네,'glimpse.log' 파일이 새로 발견되었지만 힌트를주지는 못했습니다 - 단지 정상적인'DEBUG'와'INFO' 메시지들입니다. –

답변

0

+1 여기와 동일합니다. 내가 지금까지 발견 한 것은 Glimpse를 추가함으로써 모든 경로를 보완하고 라우팅 호출을 가로 채기위한 자체 프록시 클래스로 대체한다는 것입니다. EPiServer (특히 UrlResolver)는이 경우를 좋아하지 않습니다. 무엇을 좋아하지 않는 것은 라우팅 테이블에 입력 ContentRoute의 어떤 경로가 없다는 사실

UrlResolver.GetVirtualPath(ContentReference contentLink, string language, RouteValueDictionary routeValues, RequestContext requestContext) 

입니다 :이 예외의 근본 원인은 방법에 따라한다

foreach (RouteBase base2 in from r in this._routes 
where (bool) (r is ContentRoute) 
select r) 
{ 
    ... 
    if(...) 
    { 
     return virtualPath; 
    } 
} 

return null; 

가 그리고 null로 반환 후 에서 발신자 NullReferenceExpcetion의 occours : EPiServer가 기다려온해야로부터

UrlExtensions.MapUrlFromRoute(RequestContext requestContext, RouteCollection routeCollection, string url) 

패치처럼 보인다.

+0

안녕하세요 발디 스! 업데이트 해 주셔서 감사합니다. 방금 정확히 같은 것을 깨달았으며 회신을 보았을 때 제 질문을 업데이트하려고했습니다. 나는 우리가 EPiServer에 의존하여 변화하고 있다고 생각합니다. 오픈 소스처럼, 엿볼면에서 그것을하는 것이 더 좋을 것입니다. 그러나이 문제를 처리하기 위해 Glimpse를 업데이트하는 간단한 방법이 있는지 의심 스럽습니다. –

5

해결 방법은 (! 감사 @avanderhoorn하는)의 Web.config의 "살짝"섹션이 추가하는 것입니다

<glimpse defaultRuntimePolicy="On" endpointBaseUri="~/Glimpse.axd"> 
     <tabs> 
     <ignoredTypes> 
      <add type="Glimpse.AspNet.Tab.Routes, Glimpse.AspNet"/> 
     </ignoredTypes> 
     </tabs> 
    <inspectors> 
     <ignoredTypes> 
      <add type="Glimpse.AspNet.Inspector.RoutesInspector, Glimpse.AspNet"/> 
      <add type="Glimpse.Mvc.Inspector.ModelBinderInspector, Glimpse.Mvc4"/> 
     </ignoredTypes> 
    </inspectors> 
</glimpse> 

이 EPiServer과 휴식 엿볼의 두 부분을 사용하지 않습니다. 내가 볼 수있는 한, 여전히 유용한 부품을 얻을 수 있습니다!

+0

대단히 감사합니다! 매력처럼 작동합니다. –

+0

EpiServer CMS Find 플러그인이 제대로 작동하지 않는다는 것을 알았습니다. 'Castle.Proxies.IViewProxy_1'형식의 개체를 'System.Web.Mvc.WebFormView'형식으로 캐스팅 할 수 없습니다. –