IIS 7上的.NET Framework 1.1

时间:2010-12-21 17:23:47

标签: iis-7 .net-1.1 asp.net-1.1

我继承了一个.NET Framework 1.1网站,我必须在Windows Server 2008上使用IIS 7托管。我遇到了一些麻烦。

1。安装

我在these instructions之后安装了.NET Framework 1.1。

安装会自动创建一个新的应用程序池“ASP.NET 1.1”。我用它。

2。麻烦

当我启动网站时,我看到了web.config运行时错误:

  

标记包含“culture”属性的无效值。

我修复了那个,然后看到:

  

不允许使用子节点。

我不想继续玩这种打鼹鼠的游戏。 肯定是错的。

3。我确定这是.NET 1.1吗?

我检查自动创建的应用程序池。我看到它是1.1。

高级设置...

Automatic AppPool .NET 1.1 Advanced

基本设置......

Automatic AppPool .NET 1.1 Basic

这似乎不对。

设置1.1时,它不是高级下拉选择器中的选项。

为什么在Basic框中它只是“v1.1”而不是“.NET Framework v1.1.4322”?那会更加一致。

4。我无法创建其他.NET 1.1应用程序池

我无法为其他应用程序池选择.NET Framework 1.1。它不是下拉选择器中的一个选项。怎么了?

App Pool missing .NET 1.1 option

现在怎么办?

  • 为什么v1.1不是所有AppPools的选项?
  • 如何验证我的应用程序实际上是否使用.NET Framework 1.1?
  • 为什么我会收到这些运行时错误?

3 个答案:

答案 0 :(得分:7)

了解应用程序是否在1.1下运行的快速方法是敲除显示环境版本的快速脚本:

<%@ Page Language="C#" %>
<script runat="server">
    void Page_Load(Object sender, EventArgs e)
    {
        Response.Write(System.Environment.Version.ToString());       
    }
</script>

或者如果您获得黄色死亡屏幕,那么您将在页面底部看到版本号: alt text

我怀疑在添加新应用程序池或修改现有应用程序池时无法选择Framework 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 Framework v1.1.4322 的原因是因为该值是从{{app}中的managedRuntimeVersion属性中选取的applicationHost.config属性1}}。版本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设置为任何旧值:

alt text

我希望我能解释为什么ASP.NET 1.1应用程序池会被神奇地创建,或者安装程序如何使用处理程序映射来管理正确的事情(不知何故设置了所有正确的preConditions,所以要么安装程序已更新或IIS有某种触发器来查找正在安装的1.1并修复问题。

<强>更新

我联系了本文作者Bill Staples:

  

How to install ASP.NET 1.1 with IIS7 on Vista and Windows 2008

我向他询问了1.1安装程序或IIS7如何管理处理程序映射,创建“ASP.NET 1.1”应用程序池等等。这是他的回复:

“如果内存服务,在Vista / Windows 2008中创建了一个应用程序兼容性填充程序,它将检测1.1安装程序并执行应用程序池创建/处理程序映射。 但是,在Windows 7 / Windows Server 2008 R2中,不再支持.NET framework 1.1,如果提取此代码,我不会感到惊讶,但我不确定。“

神秘的解决了。

答案 1 :(得分:2)

我在尝试安装旧的.Net 1.1时遇到了同样的问题。在Win2k8 / IIS7上。最后,我发现将所有内容都压缩到.Net 2.0更容易,更快捷。我建议你也这样做。

除非您的代码做任何异乎寻常的事情,否则移植过程可以在一天或更短的时间内完成,以适用于相当大的项目。

答案 2 :(得分:1)

Windows 2008没有安装.NET 1.1。你可以manually install .NET 1.1