0

Webアプリをasp3.5から4.0フレームワークにアップグレードしましたが、小さな問題がありました。これで、スローとエラーをデバッグできるようになっていたコードのブロックが、リリースモードでコンパイルして公開し、サーバーにデプロイすると正常に機能します。サーバーは2008年のエンタープライズIIS7です。コードのブロックは次のとおりです。問題が発生します。ページがihttphandlerタイプに変更され、ページのリクエストを処理できるようになるときです。その行がヒットすると、IISは統合モードである必要があります。プロジェクトをチェックしました。ローカルISSを使用しています。アプリプールは統合に設定されています。試みられているのは、ページに含まれているコントロールを取得できるように、ページをメモリにレンダリングすることです。私が理解していないのは、公開および展開された後、なぜそれが機能するのかということです。

    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
4

1 に答える 1

0

私は答えを見つけました。組織全体の更新を通じて、フレームワーク4.5が開発者のマシンにインストールされました。それが削除され、4.0が再インストールされると、すべてが再び正常に機能するようになります。

于 2012-11-21T17:23:14.993 に答える