Web アプリの 1 つを ASP.NET 4.0 にアップグレードしました。メニューには CssFriendly を使用しており、いくつかのページにはツリーが含まれています。ローカル マシン (Win7 x64、IIS7) で実行しようとすると、次のようになります。
この要求を処理するために必要な構成ファイルの処理中にエラーが発生しました。以下の特定のエラーの詳細を確認し、構成ファイルを適切に変更してください。
パーサー エラー メッセージ: ID 'MozillaFirefox' のブラウザーまたはゲートウェイ要素が見つかりません。
ソース エラー:
7 行目: </browser>
8 行目:
9 行目: <browser refID="MozillaFirefox">
10 行目: <controlAdapters>
11 行目: <adapter> controlType="System.Web.UI.WebControls.Menu"ソースファイル: E:\RivWorks\localhost\App_Browsers\CSSMenuAdapter.browser
バージョン情報:
Microsoft .NET Framework バージョン:4.0.30319;
ASP.NET バージョン:4.0.30319.1
いくつかの解決策を参照し、 http: //www.asp.net/LEARN/whitepapers/aspnet4/breaking-changes の「Browser Definition Files Updated」という見出しの下の指示に従いました。VS2010 のコマンド ウィンドウで ASPNET_REGBROWSERS を実行すると、次のようになります。
aspnet_regbrowsers –i
コマンド "aspnet_regbrowsers" は無効です。
それで、コマンドプロンプトから(管理者モードで)試してみましたが、うまくいくようでした。その後、アプリを再コンパイルして再公開しました。私はまだ同じエラーが発生しています。私が見逃しているアイデアはありますか?
注 1: 私の CSSMenuAdapter.browser ファイル (CSS フレンドリー) には、次のエントリがあります。
<browser refID="MozillaFirefox">
<controlAdapters>
<adapter controlType="System.Web.UI.WebControls.Menu"
adapterType="RivWorks.Web.MenuAdapter" />
</controlAdapters>
</browser>
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Browsers\mozilla.browser には次のものがあります。
<browser id="MozillaFirefox" parentID="MozillaRV">
<identification>
<userAgent match="Gecko\/\d+ Firefox\/(?'version'(?'major'\d+)(?'minor'\.[.\d]*))" />
</identification>
<capabilities>
<capability name="browser" value="Firefox" />
<capability name="majorversion" value="${major}" />
<capability name="minorversion" value="${minor}" />
<capability name="version" value="${version}" />
<capability name="type" value="Firefox${version}" />
</capabilities>
</browser>
見つからない理由がわかりません。:(
注 2: CSSMenuAdapter.browser ファイルの browser 要素をコメントアウトしたところ、サイトが再び機能するようになりました。生成されたコードを確認したところ、Chrome で適切に表示されます。私はFirefoxでもそれを見ましたが、それは機能しています(コメントアウトされているので、頭を悩ませています)。そして、IEも同様に機能しています。ここで何が本当に壊れているのか、私はとても迷っています!