CSS Friendly и обновление до ASP.NET 4.0 - PullRequest
0 голосов
/ 04 ноября 2010

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

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

Сообщение об ошибке Parser: браузер или элемент шлюза с идентификатором '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 Ответ

2 голосов
/ 19 сентября 2011

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

...