2012-11-20 4 views
0

우리는 사소한 문제로 ASP 3.5에서 4.0 프레임 워크로 Web App를 업그레이드했습니다. 이제는 코드를 사용하여 디버그 및 오류를 디버깅 할 수 있지만 일단 컴파일하고 릴리스 모드로 게시 한 다음 서버에 배포하면 정상적으로 작동합니다. 서버는 2008 년 엔터프라이즈 iis 7입니다. 코드 블록은 아래와 같습니다. 문제가 발생합니다. 페이지가 ihttphandler 유형으로 변경되어 페이지의 요청을 처리 할 수 ​​있습니다. 해당 줄이 나올 때 IIS가 통합 모드에 있어야합니다. 나는 프로젝트를 점검했다. 그것은 로컬 ISS를 사용하고 있습니다. 응용 프로그램 풀이 통합으로 설정됩니다. 시도되고있는 것은 페이지에 포함 된 컨트롤을 얻을 수 있도록 페이지를 메모리에 렌더링하는 것입니다. 내가 이해할 수없는 것은 일단 출판되고 배포 된 후 작동하는 이유입니다.Ihttphandler는 로컬 IIS에서 작동하지 않지만 일단 서버에서 컴파일 및 배포되었습니다.

Private Sub RetrieveControls(ByVal file As String) 
     If Not String.IsNullOrEmpty(file) Then 
      Dim s As New System.IO.MemoryStream() 
      Dim w As New System.IO.StreamWriter(s) 
      Dim path As String = Me.Request.Url.AbsolutePath 
      path = path.Remove(path.LastIndexOf("/") + 1) 
      Dim wr As New System.Web.Hosting.SimpleWorkerRequest(path & file, "security=true", w) 

      Dim t As Type = System.Web.Compilation.BuildManager.GetCompiledType(path & file) 
      Dim p As Page = Activator.CreateInstance(t) 
      p = BuildManager.CreateInstanceFromVirtualPath("~/Screens/" & file, t) 
      Dim con As New HttpContext(wr) 


      CType(p, IHttpHandler).ProcessRequest(con) 



      Dim containerPC As ContentPlaceHolder = p.Form.FindControl("PageContent") 
      Dim containerBC As ContentPlaceHolder = p.Form.FindControl("ButtonContent") 

      RecursiveControlDrill(containerPC) 
      RecursiveControlDrill(containerBC) 
      Master.sm.ModifyData(m_ci, "Controls", SessionManager.SessionDataType.Temporary) 
     End If 
    End Sub 

답변

0

답변을 찾았습니다. 조직 전반에 걸쳐 개발자 머신에 와이드 업데이트 프레임 워크 4.5가 설치되었습니다. 일단 제거되고 4.0이 다시 설치되면 모든 것이 이제는 정상적으로 작동합니다.

관련 문제