Поддержка CSS и обновление до ASP.NET 4.0

Я только что обновил одно из наших веб-приложений до 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 тоже работает. Я так заблудился в том, что здесь действительно сломано!


person Keith Barrows    schedule 04.11.2010    source источник
comment
Скопировали ли вы файлы конфигурации браузеров в папку .net 4.0 перед выполнением команды aspnet_regbrowsers?   -  person Chris Shaffer    schedule 04.11.2010
comment
Я скопировал файлы браузера 2.0 (папка Old Browser Definition Files). Поскольку CssFriendly был написан для 2.0 (3.0 / 3.5 включены, поскольку все определения браузера были 2.0), я подумал, что это должно решить мою проблему.   -  person Keith Barrows    schedule 04.11.2010


Ответы (1)


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

person vikas368    schedule 19.09.2011