0

我刚刚将我们的一个 Web 应用程序升级到 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/break-changes中的说明进行操作。如果我在 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 文件中注释掉了浏览器元素,并且该站点再次运行。我查看了生成的代码,它在 Chrome 中看起来不错。我还在 Firefox 中查看了它,它正在工作(因为它被注释掉了,所以我摸不着头脑)。IE 也可以正常工作。我很迷茫,现在这里真的坏了!

4

1 回答 1

2

将 refID 更新为“Firefox”。这对我有用,因为在 C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Browsers\mozilla.browser Id 是 Firefox 而不是 MozillaFirefox。

于 2011-09-19T12:38:02.397 回答