CSS Friendly и обновление до ASP.NET 4.0

Я только что обновил одно из наших веб-приложений до ASP.NET 4.0. Он использует CssFriendly для меню и несколько страниц с деревьями. Когда я пытаюсь запустить на своей локальной машине (Win7 x64, IIS7), я получаю:

Произошла ошибка во время обработки файла конфигурации, необходимого для обслуживания этого запроса. Пожалуйста, просмотрите подробности конкретной ошибки ниже и измените файл конфигурации соответствующим образом.

Сообщение об ошибке синтаксического анализатора: не удается найти элемент браузера или шлюза с идентификатором "MozillaFirefox".

Ошибка источника:

Строка 7:
Строка 8:
Строка 9:
Строка 10:
Строка 11: <адаптер> 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 под заголовком "Обновлены файлы определения браузера". Если я запускаю 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 тоже работает. Я так растерялся относительно того, что действительно сломано здесь и сейчас!

1 ответ

Решение

Обновить refID до "Firefox". это сработало для меня, потому что в C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Browsers\mozilla.browser Id - это Firefox, а не MozillaFirefox.

Другие вопросы по тегам