ASP.NET 浏览器注册工具 (Aspnet_regbrowsers.exe)
更新:2007 年 11 月
ASP.NET 浏览器注册工具将分析系统级的所有浏览器定义,并将这些定义编译成一个程序集,然后将该程序集安装到全局程序集缓存中。该工具使用 .NET Framework 的 Browsers 子目录中的浏览器定义文件(.BROWSER 文件)。可在 %SystemRoot%\Microsoft.NET\Framework\版本\ 目录中找到该工具。
在 ASP.NET 1.1 版中,Machine.config 文件包含一个名为 <browserCaps> 的节。此节包含一系列 XML 项,这些项基于正则表达式定义各种浏览器配置。对于 ASP.NET 2.0 版,新的 .BROWSER 文件使用 XML 项定义特定浏览器的参数。通过向位于系统上的 %SystemRoot%\Microsoft.NET\Framework\版本\CONFIG\Browsers 中的文件夹添加新的 .BROWSER 文件,可以添加有关新浏览器的信息。
由于应用程序不是在每次需要浏览器信息时都读取 .config 文件,所以可创建新的 .BROWSER 文件并运行 Aspnet_regbrowsers.exe 以将所需更改添加至程序集。这样使服务器能够立即访问新的浏览器信息,从而不必关闭任何应用程序即可获取该信息。应用程序可以通过当前 HttpRequest 的 Browser 属性访问浏览器的功能。
语法
aspnet_regbrowsers.exe <options>
选项
选项 |
说明 |
---|---|
-? |
在命令窗口中显示 Aspnet_regbbrowsers.exe 帮助文本。 |
-i |
创建运行时浏览器功能程序集,并将该程序集安装在全局程序集缓存中。 |
-u |
从全局程序集缓存中卸载运行时浏览器功能程序集。 |
备注
浏览器定义文件既可以是系统级的,也可以是特定于应用程序的,并且每种类型存储在不同的位置。系统级的浏览器定义文件存储在 %SystemRoot%\Microsoft.NET\Framework\版本\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 -?