注意
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 -?