.NET框架1.1在IIS 7上
-
12-10-2019 - |
题
我已经继承了一个.NET Framework 1.1网站,我必须在Windows Server 2008上使用IIS 7托管。我遇到了一些麻烦。
1.安装
我安装了.NET框架1.1以下 这些说明.
安装自动创建了一个新的应用程序池“ ASP.NET 1.1”。我用那个。
2.麻烦
启动网站时,我会看到Web.config运行时错误:
该标签包含“文化”属性的无效值。
我修复了那个,然后查看:
不允许儿童节点。
我不想继续玩这个摩尔游戏。 某事一定是错误的。
3.我确定这是.NET 1.1吗?
我检查自动创建的应用程序池。我看到它是1.1。
高级设置...
基本设置...
这似乎不对。
设置1.1时,它不是高级下拉列表选择器中的选项。
为什么在基本框中只是“ v1.1”而不是“ .NET Framework v1.1.4322”?那将是更一致的。
4.我无法创建其他.NET 1.1应用程序池
我不能为其他应用程序池选择.NET Framework 1.1。在下拉菜单中,这不是一个选项。那是怎么回事?
现在怎么办?
- 为什么V1.1不是所有AppPools的选项?
- 我如何验证我的应用程序实际上是使用.NET Framework 1.1?
- 为什么我会遇到这些运行时错误?
解决方案
一种快速的方法来找出应用程序是否在1.1下运行的应用程序是敲打显示环境版本的快速脚本:
<%@ Page Language="C#" %>
<script runat="server">
void Page_Load(Object sender, EventArgs e)
{
Response.Write(System.Environment.Version.ToString());
}
</script>
或者,如果您获得了黄色的死亡屏幕,那么您会在页面底部看到版本号:
我怀疑您无法选择框架的原因 v1.1 添加新的应用程序池或修改现有的应用程序时,1.1安装程序不知道如何向IIS添加一些关键的元数据或配置信息。
.NET 2.0船与2008和.NET 4.0成为后期产品,也是IIS7友好的,因此很可能IIS集成更好。或者,v1.1没有IIS7 INETMGR需要能够将其添加到其各种列表中的元数据的基本掘金。
您可以在ASP.NET 1.1池的下拉列表中看到v1.1的原因 基本设置 对话而不是其他池是因为它已经设置了,因此仅包含在列表中。我在新创建的ASP.NET 1.1池上进行了实验并更改了此操作,并将其设置为2.0,保存并重新打开。结果是v1.1不再可见。
此外,它被称为v1.1而不是 .NET框架v1.1.4322 是因为该价值正在从 managedRuntimeVersion
App Pool配置中的属性在 applicationHost.config
. 。版本2.0和4.0显示完整描述的原因是,可能有一些IIS友好元数据,其中有一个资源字符串,而不是1.1的存在。
要设置一个池以在创建时间使用v1.1,您必须手动设置 managedRuntimeVersion
属性使用 APPCMD.EXE
:
appcmd add apppool /name:"NewPool" /managedRuntimeVersion:"v1.1"
这在您链接到的文章的底部进行了解释。
要更改现有池以使用1.1,您还必须使用命令行 APPCMD.EXE
工具:
appcmd set apppool /apppool.name:"SomeOtherPool" /managedRuntimeVersion:"v1.1"
有趣的是,您可以设置 managedRuntimeVersion
任何旧价值:
我希望我可以解释为什么ASP.NET 1.1应用程序池神奇地创建了一个或安装程序如何使用处理程序映射来做正确的事情(以某种方式正确 preConditions
设置了,因此安装程序已经更新了,或者IIS具有某种触发器,可以在安装1.1并修复内容)。
更新:
我联系了本文的作者比尔·斯台普斯(Bill Staples):
我问他有关1.1安装程序或IIS7如何在处理程序映射方面做正确的事情,创建“ ASP.NET 1.1”应用程序池等。这是他的回答:
“如果内存服务,在Vista/Windows 2008中,创建了一个应用程序兼容性垫片,它将检测1.1安装程序并执行App Pool创建/处理程序映射。但是,在Windows 7/Windows 7/Windows Server 2008 R2中,.NET r2,.NET Framework 1.1否否更长的支持,如果我不确定,我不会感到惊讶。”
如此神秘。
其他提示
在尝试安装旧的.NET 1.1时,我遇到了同样的问题。在win2k8/iis7上。最后,我发现仅将所有内容撞到.NET 2.0都更容易,更快。我建议您也这样做。
除非您的代码正在做任何异国情调的事情,否则可以在合理大型项目的情况下一天或更少地进行移植过程。
Windows 2008没有安装.NET 1.1。你可以 手动安装.NET 1.1.