0

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も同様に機能しています。ここで何が本当に壊れているのか、私はとても迷っています!

4

1 に答える 1

2

refID を「Firefox」だけに更新します。C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Browsers\mozilla.browser Id は MozillaFirefox ではなく Firefox であるため、私にとってはうまくいきました。

于 2011-09-19T12:38:02.397 に答える