우리는 사소한 문제로 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