0

'埋め込み'ビューをロードするために独自のVirtualPathProviderを実装しました。

これは、Visual Studioから実行すると非常にうまく機能しますが、IIS6で実行すると、「ビューが見つかりません」というメッセージが表示されます。

web.configに不足しているものはありますか、それとも他の問題がありますか?

いくつかのログを追加しました。Application_StartにカスタムVirtualPathProviderを登録しても、System.Web.Hosting.MapPathBasedVirtualPathProviderは引き続き使用されているようです。

4

2 に答える 2

1

カスタムVPP+IIS6 +プリコンパイル済みサイトの組み合わせの場合、AppInitailize()からVPPを追加する必要があります。

public static class AppStart
{
    public static void
    {
    // code to be executed automatically by the framework
    }
}

参照:

http://sunali.com/2008/01/09/virtualpathprovider-in-precompiled-web-sites/

于 2011-03-03T09:45:10.683 に答える
0

全く使われていませんか?VirtualPathProviderはスタックで動作するため、VirtualPathProviderでは、基本クラスのメンバー「Previous」が実際には「MapPathBasedVirtualPathProvider」のインスタンスであることに注意してください。

もし、あんたが:

  1. デバッガーをIISに接続します

  2. web.configに変更を加えてから元に戻し、保存して(リサイクルをトリガーするために)、接続したままにします。

  3. FileExistsのVPPにブレークポイントを設定します

  4. ページをヒット

あなたのVPPはヒットしますか?その場合、最初のリクエストの後、MVCのViewEngineキャッシングにより、VPPが追加のリクエストにヒットするのを防いでいることが問題になる可能性があります...

于 2010-09-06T04:59:39.503 に答える