ASP.NET 浏览器注册工具 (Aspnet_regbrowsers.exe)

ASP.NET 浏览器注册工具将分析系统范围的所有浏览器定义,并将这些定义编译成一个程序集,然后将该程序集安装到全局程序集缓存中。该工具使用 .NET Framework 的 Browsers 子目录中的浏览器定义文件(.BROWSER 文件)。可在 %SystemRoot%\Microsoft.NET\Framework\version\ 目录中找到该工具。

在 ASP.NET 1.1 版中,Machine.config 文件包含一个名为 <browserCaps> 的节。此节包含一系列 XML 项,这些项基于正则表达式定义各种浏览器配置。对于 ASP.NET 2.0 版,新的 .BROWSER 文件使用 XML 项定义特定浏览器的参数。通过向系统上的 %SystemRoot%\Microsoft.NET\Framework\version\CONFIG\Browsers 文件夹添加新的 .BROWSER 文件,可以添加关于新浏览器的信息。

由于应用程序不是在每次需要浏览器信息时都读取 .config 文件,所以可创建新的 .BROWSER 文件并运行 Aspnet_regbrowsers.exe 以将所需更改添加至程序集。这样使服务器能够立即访问新的浏览器信息,从而不必关闭任何应用程序即可获取该信息。应用程序可以通过当前 HttpRequestBrowser 属性访问浏览器的功能。

语法

aspnet_regbrowsers.exe <options>

选项

选项 说明

-?

在命令窗口中显示 Aspnet_regbbrowsers.exe 帮助文本。

-i

创建运行时浏览器功能程序集,并将该程序集安装在全局程序集缓存中。

-u

从全局程序集缓存中卸载运行时浏览器功能程序集。

备注

浏览器定义文件既可以是系统范围的,也可以是特定于应用程序的,并且每种类型存储在不同的位置。系统范围的浏览器定义文件存储在 %SystemRoot%\Microsoft.NET\Framework\version\CONFIG\Browsers 目录中。此目录包含一些随对应的 .NET Framework 版本一起提供的预定义的浏览器定义文件,还包括从软件更新或 Service Pack 复制到该目录的任何其他浏览器定义文件。不要更改 ASP.NET 随附的预定义的浏览器定义文件,因为 Service Pack 可能会更新这些文件并改写您所做的更改。

特定于应用程序的浏览器定义文件可以放在应用程序的 App_Browsers 目录中。在这两个位置中,浏览器定义文件都必须具有 .BROWSER 文件扩展名。使用 ASP.NET 浏览器注册工具不会影响存储在应用程序的 App_Browsers 目录中的特定于应用程序的浏览器定义文件。

当修改系统级别的浏览器定义文件时,这些文件不会自动导致更新所有应用程序的浏览器功能。必须运行 ASP.NET 浏览器注册工具来更新浏览器功能程序集。

备注

ASP.NET 浏览器注册工具将对与其版本对应的 .NET Framework 版本的 Browsers 目录中的浏览器定义进行编译。每个 .NET Framework 版本都有自己的 ASP.NET 浏览器注册工具。

ASP.NET 浏览器注册工具将分析系统范围的所有浏览器定义,并将这些定义编译成一个程序集,然后将该程序集安装到全局程序集缓存中。如果系统范围的浏览器定义中存在错误,该工具将报告这些错误。系统中的所有 Web 应用程序都使用该浏览器功能程序集。注意,通过使用 BrowserCapabilitiesCodeGenerator 类,还能够以编程方式重新编译系统范围的浏览器定义文件。

行为

运行 ASP.NET 浏览器注册工具时,将创建新的程序集,对所有 Web 应用程序的影响与更改 Machine.config 文件的影响相同:所有运行的 Web 应用程序都被回收,Microsoft Internet 信息服务 (IIS) 将重新启动。该工具还生成随机的私有标记文件,并创建密钥文件对程序集进行签名,以使程序集能安装在全局程序集缓存中。在该工具运行结束时,将移除密钥文件,而只留下公钥。

在运行时,浏览器定义文件信息合并到 BrowserCapabilitiesFactory 对象中的已知浏览器集合中。发出请求时,ASP.NET 根据请求标头标识请求的浏览器,并编译一个与请求的浏览器类型相对应的 HttpBrowserCapabilities 对象。

备注

使用 Web.config 文件中的 <browserCaps> 元素来定义浏览器在 .NET Framework 2.0 版中被否决,但仍受支持。此元素中的数据与浏览器定义文件中的信息合并在一起。

相反,在应用程序启动时,会自动对应用程序级别的浏览器定义文件进行分析并按需进行编译。如果对应用程序的 Browsers 目录做了任何更改,应用程序将自动重新编译。ASP.NET 浏览器注册工具对应用程序级别的浏览器信息文件没有任何影响。

示例

若要分析系统范围的所有浏览器定义,并将这些定义编译成一个程序集,然后将该程序集安装到全局程序集缓存中,请运行 Aspnet_regbrowsers.exe。下面的命令创建并安装程序集:

C:\WINDOWS\Microsoft.NET\Framework\<versionNumber>\aspnet_regsql.exe -i

也可以使用该工具从全局程序集缓存中移除浏览器定义程序集。下面的命令将浏览器定义程序集从全局程序集缓存中移除:

aspnet_regsql.exe -u

若要获取有关使用 ASP.NET 浏览器注册工具的帮助,请使用以下命令:

aspnet_regsql.exe -?

请参见

任务

如何:在 ASP.NET 网页中检测浏览器类型

参考

浏览器定义文件架构(browsers 元素)
BrowserCapabilitiesFactory
Browser
HttpCapabilitiesBase

概念

ASP.NET Web 服务器控件和浏览器功能
保证浏览器定义文件的安全