我刚刚将我们的一个 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 也可以正常工作。我很迷茫,现在这里真的坏了!