当前位置:首页 > 技术学堂 > 综合技术 > 正文 win2003 ASP.NET——为 ASP.NET 版本配置 ASP.NET 应用程序内容读取中请稍后...
站内搜索:
win2003 ASP.NET——为 ASP.NET 版本配置 ASP.NET 应用程序
您正浏览win2003 ASP.NET——为 ASP.NET 版本配置 ASP.NET 应用程序的详细内容 首页更多精彩 人气 ...

|奔日网技术学堂欢迎您 tech.8BR.NET|

在默认情况下,当在已安装 .NET Framework 的计算机上安装 .NET Framework 时,所有的 ASP.NET 应用程序都会自动更新为使用该版本的 .NET Framework。唯一的例外是绑定到非兼容版本的运行库或更新版本的运行库的应用程序。虽然高版本的 .NET Framework 已设计成向后兼容,但您仍可能希望将 ASP.NET 应用程序配置为使用早期的版本。下列章节描述了配置 ASP.NET 应用程序以使用特定版本的 .NET Framework 的过程。

查看 ASP.NET 应用程序的脚本映射
在管理安装了多个 .NET Framework 版本的计算机时,查看 ASP.NET 应用程序的脚本映射对于确定应用程序使用的是哪个版本的 .NET Framework 十分有用。您可以使用 Internet 信息服务管理控制台来查看 ASP.NET 应用程序的脚本映射。

查看 ASP.NET 应用程序的脚本映射

打开 IIS 管理器,单击加号展开本地计算机,并导航到包含 ASP.NET 应用程序的文件夹。
右键单击该文件夹,然后单击“属性”。应用程序的“属性”对话框出现。
在“目录”选项卡上,单击“配置”按钮。出现“应用程序配置”对话框。
在“映射”选项卡上,选择 ASP.NET 应用程序扩展名,如 .asmx 或 .aspx。
对话框的“可执行路径”列中将列出应用程序所使用的 ASP.NET ISAPI 版本的路径。在默认情况下,ASP.NET ISAPI 安装在下列位置:

systemroot\Microsoft.NET\Framework\versionNumber

路径中显示的版本号表示应用程序使用的 ASP.NET ISAPI 的版本号。ASP.NET ISAPI 的版本决定了应用程序使用哪个版本的运行库。

使用 Aspnet_regiis.exe 更新脚本映射
为了更便于为 ASP.NET 应用程序重新配置脚本映射,每个 .NET 框架安装程序都附带相关版本的 ASP.NET IIS 注册工具 (Aspnet_regiis.exe)。管理员可以使用该工具将 ASP.NET 应用程序重新映射到与该工具相关的 ASP.NET ISAPI 版本上。

注意 因为 Aspnet_regiis.exe 与特定版本的 .NET Framework 联系在一起,所以管理员必须使用相应版本的 Aspnet_regiis.exe 来配置 ASP.NET 应用程序的脚本映射。Aspnet_regiis.exe 只是将 ASP.NET 应用程序的脚本映射重新配置到与该工具相关的 ASP.NET ISAPI 版本上。

该工具还可用于显示所有已安装的 ASP.NET 版本的状态、注册相关版本的 ASP.NET、创建客户端脚本目录和执行其他配置操作。

使用 Aspnet_regiis.exe 更新 ASP.NET 应用程序的脚本映射

打开命令窗口。(单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。)
导航到要使用的 Aspnet_regiis.exe 版本的目录。请记住,每个版本的 .NET Framework 都有自己的 Aspnet_regiis.exe 版本。该文件通常位于下列目录中:
systemroot\Microsoft.NET\Framework\versionNumber

使用 Aspnet_regiis.exe 的 –s 或 –sn 选项和应用程序的路径设置脚本映射。下面显示了为名为 SampleApp1 的应用程序更新脚本映射的示例命令行。
Aspnet_regiis.exe -s W3SVC/1/ROOT/SampleApp1
IIS 6.0 中的应用程序池
IIS 6.0 以前的版本使用 ASP.NET 进程模型 (Aspnet_wp.exe)。在 ASP.NET 进程模式下,每个唯一的应用程序版本在运行时都自动以独立的进程运行。使用相同版本的运行库的所有应用程序都共享相同的进程(或 Web 园模式中的进程)。然而,IIS 6.0 使用 IIS 6.0 进程模型 (W3wp.exe) 并引入了一种称作应用程序池的新的隔离特性。应用程序池允许应用程序在一个或多个进程中同时运行,只要它们有相同的池标识。分配到不同应用程序池的应用程序决不会在相同的进程中运行。

当使用 IIS 6.0 的计算机上安装了多个版本的 .NET Framework 时,您会在应用程序事件日志中看到下列错误消息:

不能在相同的 IIS 进程中运行不同版本的 ASP.NET。请使用 IIS 管理工具重新配置服务器,以便在独立的进程中运行应用程序。

当多个版本的 ASP.NET 被配置为在相同的进程中运行时,就会出现该错误。不同版本的 .NET Framework 和运行库不能并行地共存于相同的进程中。因此,使用特定运行库版本的 ASP.NET 应用程序不能与使用其他运行库版本的应用程序共享进程。当两个或两个以上的应用程序被映射到不同 ASP.NET 版本,但却共享相同的应用程序池时,通常会出现该错误。

要使用应用程序池,请先确认已禁用了 IIS 5.0 隔离模式。然后,请在 Internet 信息服务管理控制台中导航到所需的应用程序,并为其指派应用程序池。如果想将应用程序与现有的应用程序池隔离开,请创建新的池标识。

注意 每个应用程序的进程隔离都是手动配置的。

禁用 IIS 6.0 中的 IIS 5.0 隔离模式

打开 IIS 管理器,然后展开“本地计算机”。
右键单击“网站”文件夹,然后单击“属性”。
在“服务”选项卡上,清除“以 IIS 5.0 隔离模式运行 WWW 服务”复选框。
为 IIS 6.0 中的 ASP.NET 应用程序指派池标识

打开 IIS 管理器并展开“本地计算机”,然后导航到包含 ASP.NET 应用程序的文件夹。
右键单击该文件夹,然后单击“属性”。出现应用程序的“属性”对话框。
在“目录”选项卡上,从“应用程序池”下拉列表中选择所需的池标识。
在 IIS 6.0 中创建池标识

打开 IIS 管理器并展开“本地计算机”。
右键单击“应用程序池”文件夹,指向“新建”,然后单击“应用程序池”。出现“添加新应用程序池”对话框。
在“应用程序池”文本框中,输入新的池标识,然后单击“确定”。


.NET Framework 程序集统一
在并行执行中,应用程序有可能由使用不同版本的 .NET Framework 创建的组件组成。这可能会在组件的依存关系方面引起冲突。例如,假设组件 A 是使用 .NET Framework 1.0 版创建的,并且需要使用 1.0 版的 System.Data 程序集。组件 B 是使用 .NET Framework 1.1 版创建的,并且需要使用 1.1 版的 System.Data 程序集。如果程序集的版本不兼容,但却在同一时间加载,将会导致出现预料不到的强制类型转换异常或更严重的问题。

应用程序如何确定使用哪个版本的 .NET Framework
要解决这个问题,当应用程序使用在不同 .NET Framework 版本上创建的组件时,与应用程序相关的运行时版本将决定应用程序及其所有组件使用的 .NET Framework 程序集版本。在上一个示例中,如果与应用程序关联的是 1.1 版本的 .NET Framework,则会载入 1.1 版本的 System.Data 程序集,而且应用程序使用的所有组件都将共享该程序集。组件 A 对于 1.0 版本的 System.Data 程序集的引用会在运行时升级为 1.1 版本。

可以通过向 Machine.config 或 Web.config 文件中添加 <bindingRedirect> 元素来覆盖该行为。这样便允许应用程序使用更新的程序集版本,而该版本又可以为某些类型的应用程序替换现有程序集。例如:假设将来发行支持 SOAP 1.2 版的更新版的 System.Web.Service.dll,您可能想让您的应用程序使用该版本,而不是原先与运行时一起安装的版本。

注意 有关详细信息,请参阅 .NET Framework 帮助中的 <bindingRedirect> 主题。

在 ASP.NET 主机配置文件 (Aspnet.config) 中也可以覆盖该行为。无论 Web.config 文件中有无任何覆盖,ASP.NET 都会使用此文件来确保 System.Web.dll 和 System.Web.RegularExpressions.dll 的版本总是与应用程序运行时版本相匹配。

有时候,您可能希望在使用早期版本构建的应用程序中使用由更新版本的 ASP.NET 创建的组件。请记住,应用程序使用的运行时版本总是由与应用程序相关的 ASPNET ISAPI 的版本决定的。如果应用程序被配置为使用早期版本的运行时,那么组件也会重定向为使用该版本的运行时。当您在由早期版本构建的应用程序中使用通过更新版本的 .NET Framework 创建的组件时,请考虑下列事项:

请确保组件没有使用较新版本的 .NET Framework 中任何特有的功能,或依赖于较新版本的 .NET Framework 中任何特有的行为。这些功能也许在早期的运行时版本中不可用。
ASP.NET 在 IIS 中用脚本映射将应用程序绑定到某个运行时版本。<supportedRuntime> 和 <requiredRuntime> 配置元素不适用于 ASP.NET 应用程序。
或者,如果计算机中安装了创建组件时使用的运行时,那么您也可以重新配置应用程序,使其使用较新的运行时版本。因为较新版本的 .NET Framework 向后兼容,所以无需任何修改,应用程序便可以正常工作。有关配置 ASP.NET 应用程序以使用特定运行时版本的详细信息,请参阅为 ASP.NET 版本配置 ASP.NET 应用程序。

重新分发 .NET Framework
在将 ASP.NET 应用程序部署到生产服务器上时,还需要安装 .NET Framework 可重新分发包 (Dotnetfx.exe) 以支持 ASP.NET 服务器控件和在服务器上运行的其他应用程序部分。但是,应用程序可以使用一种可重新分发包版本,而服务器上的其他应用程序使用另一种版本。

在将 .NET Framework 可重新分发包与要安装到生产服务器上的应用程序包含在一起时,就会自动更新 ASP.NET。如果服务器主持其他使用不同 ASP.NET 版本的应用程序,则需要将以下命令包含在应用程序的安装程序中:

Dotnetfx.exe /c:"install /NOASPUPGRADE"

在安装应用程序后,必须在应用程序的虚拟目录和要安装的 .NET Framework 版本之间创建一个脚本映射。有关如何创建自定义脚本映射的详细信息,请参阅设置应用程序映射。

有关 Microsoft .NET Framework 可重新分发包的详细信息,请参阅 MSDN Library 的 Dotnetfx.exe 中的信息。
 

 发表对 win2003 ASP.NET——为 ASP.NET 版本配置 ASP.NET 应用程序 的评论  请文明聊天

|点此可收藏|或发表对本篇的评论

声明:此页资源均由网友维护。资源信息、网友评论,不代表本站观点。如有侵权请告知,我们立刻删除。

 艺术写真
 社会新闻
 极品飞车

『热点资讯』

『最新资讯』

『网友推荐』


百度搜索:
会员名称: 密码:匿名 注册 找回密码