Я только что обновил одно из наших веб-приложений до ASP.NET 4.0. Он использует CssFriendly для меню и нескольких страниц с деревьями. Когда я пытаюсь запустить на своем локальном компьютере (Win7 x64, IIS7), я получаю:
ошибка произошла во время обработки файла конфигурации, необходимого для обслуживания этого запроса. Просмотрите приведенные ниже сведения о конкретных ошибках и соответствующим образом измените файл конфигурации.
Сообщение об ошибке парсера: не удается найти элемент браузера или шлюза с идентификатором 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#0.1__Toc256770145 под заголовком «Файлы определений браузера обновлены». Если я запускаю ASPNET_REGBROWSERS в командном окне в VS2010, я получаю:
aspnet_regbrowsers –i
Недопустимая команда aspnet_regbrowsers.
Итак, я попробовал это из командной строки (в режиме администратора), и, похоже, это сработало. Затем я перекомпилировал свое приложение и повторно опубликовал его. Я все еще получаю ту же ошибку. Любые идеи, что мне не хватает?
ПРИМЕЧАНИЕ 1. В моем файле CSSMenuAdapter.browser (CSS Friendly) есть запись:
<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, и сайт снова заработал. Я посмотрел на сгенерированный код, и он хорошо выглядит в Chrome. Я также посмотрел на него в Firefox, и он работает (почесываю голову, когда он закомментирован). И IE тоже работает. Я так заблудился в том, что здесь действительно сломано!