私のasp.netサイトでは、ユーザーがapp_themesフォルダから生成されたリストから必要なテーマを選ぶことができます。時々、テーマの名前が変更または削除されます。削除されたテーマ名を選択したすべてのユーザー(それがクッキーに保存されている)例外が発生します:テーマ「XXX」がアプリケーションまたはグローバルテーマディレクトリに見つかりません
Theme 'XXX' cannot be found in the application or global theme directories
Stack Trace:
[HttpException (0x80004005): Theme 'test' cannot be found in the application or global theme directories.]
System.Web.Compilation.ThemeDirectoryCompiler.GetThemeBuildResultType(String themeName) +920
System.Web.Compilation.ThemeDirectoryCompiler.GetThemeBuildResultType(HttpContext context, String themeName) +73
System.Web.UI.Page.InitializeThemes() +8699455
System.Web.UI.Page.PerformPreInit() +38
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +282
はどこをトラップするのに最適な場所であり、この例外を処理しますか?
これはうまくいくはずですが、すべてのページリクエストでかなりオーバーヘッドに見えます。おそらくDirectory.Existsは比較的長い時間がかかります。 これが起こることは非常にまれであるはずです。なぜ、例外をキャッチしたかったのか、例外タイプが何であったのか、try catchをどこに置くのかはわかりません。 – simon831
私は同意しました - なぜ私は上記の関数を変更するviewstateに結果を格納することに注意しました。 –