【问题标题】:.NET Framework 1.1 on IIS 7IIS 7 上的 .NET Framework 1.1
【发布时间】:2010-12-21 17:23:46
【问题描述】:

我继承了一个 .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。

高级设置...

基本设置...

这似乎不对。

虽然设置了 1.1,但它不是高级下拉选择器中的选项。

为什么在基本框中只是“v1.1”而不是“.NET Framework v1.1.4322”?这样会更一致。

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

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

现在怎么办?

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

【问题讨论】:

  • 我添加了来自 Microsoft 的 Bill Staples (blogs.iis.net/bills/default.aspx) 关于 1.1 安装程序的有趣信息。有点证实了我自己的怀疑,即发生了这样的事情。
  • 我直接链接到有问题的文章会很有帮助,因为它在他网站的主页上更长

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


【解决方案1】:

确定应用程序是否在 1.1 下运行的快速方法是敲出一个显示环境版本的快速脚本:

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

或者,如果您遇到黄屏死机,那么您会在页面底部看到版本号:

我怀疑在添加新应用程序池或修改现有应用程序池时无法选择 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 是因为该值是从 applicationHost.config 的应用程序池配置中的 managedRuntimeVersion 属性中获取的。版本 2.0 和 4.0 显示完整描述的原因是,可能存在一些 IIS 友好元数据,其中正在查找 1.1 不存在的资源字符串。

要将池设置为在创建时使用 v1.1,您必须使用 APPCMD.EXE 手动设置 managedRuntimeVersion 属性:

appcmd 添加 apppool /name:"NewPool" /managedRuntimeVersion:"v1.1"

这在您链接到的文章的底部进行了解释。

要将现有池更改为使用 1.1,您还必须使用命令行APPCMD.EXE 工具:

appcmd 设置 apppool /apppool.name:"SomeOtherPool" /managedRuntimeVersion:"v1.1"

有趣的是,您可以将 managedRuntimeVersion 设置为任何旧值:

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

更新:

我联系了本文作者 Bil​​l 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 中创建了一个应用程序兼容性 shim,它将检测 1.1 安装程序并执行应用程序池创建/处理程序映射。 但是,在 Windows 7 / Windows Server 2008 R2 中,.NET 框架 1.1 不再受支持,如果此代码被拉出,我不会感到惊讶,尽管我不确定。”

谜团解开了。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 我认为 zack 已经做到了。他观察到,用于选择框架版本的各种下拉列表没有列出表面上看起来令人困惑的 v1.1。
      猜你喜欢
      • 2012-09-30
      • 2011-06-19
      • 1970-01-01
      • 2011-07-04
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 2017-08-16
      • 1970-01-01
      相关资源
      最近更新 更多