代码之家  ›  专栏  ›  技术社区  ›  iburlakov

如何在IIS 6上禁用.net framework 3.5

  •  0
  • iburlakov  · 技术社区  · 17 年前

    是否有能力在IIS 6上为asp.net站点禁用.net 3.5?我刚刚有一个应用程序(.net 2.0)没有在使用.net 3.5的服务器上运行,它是:

    试图读取或写入受保护的数据 记忆力这通常是一个迹象 另一个内存已损坏。

    说明: 在执行过程中发生 有关堆栈跟踪的详细信息,请参阅 错误及其来源 密码。

    例外情况详情: System.AccessViolationException: 试图读取或写入受保护的数据 记忆力这通常是一个迹象 另一个内存已损坏。

    提前谢谢。

    4 回复  |  直到 17 年前
        1
  •  2
  •   John Saunders    17 年前

    请发布完整的例外情况。另外,失败的应用程序是.NET3.5应用程序吗?IIS中没有“禁用”,因为.NET 3.5使用.NET 2.0 CLR,就像.NET 2.0和3.0一样。NET 3.5不安装服务包。

        2
  •  1
  •   Grant Wagner    17 年前

    你不应该“禁用”任何东西。您的应用程序仍应在v2.0应用程序池中运行。

    Scott Hanselman的博客文章 How to set an IIS Application or AppPool to use ASP.NET 3.5 rather than 2.0 这与你所问的正好相反,但它应该有助于更清楚地解释情况。

    特别地:

    [web.config]是您的网站所在的位置 告诉我编译器的版本是什么

    这是告诉ASP.NET使用.NET 3.5的地方,而不是在IIS中。 非法移民 AppPool知道CLR版本,而不是 框架和编译器版本 由应用程序设置。

    因此,即使安装了.NET 3.5,应用程序仍在.NET 2.0 CLR上运行。

        3
  •  1
  •   Shane Booth    15 年前

    我意识到这是一个相当古老的话题,但我今天遇到了这个问题,并设法通过删除一些注册表项来解决它。

    1. 打开“Regedit”并查找HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft.NETFramework\Security\Policy\Extensions\NamedPermissionSets
    2. 导出密钥以防您破坏某些内容,然后可以恢复原始配置。
    3. 在这个密钥中,您将有许多子密钥(我有“Internet”和“Intranet”)
    4. 查看子项中的值并删除引用2.0.5027之后的.NET版本的所有项

    我认为替代方法是在web.config中注册适当的库和/或类。

        4
  •  0
  •   Tim Cooper    15 年前

    不确定这是否对您有用,但我认为您可以在web.config文件中声明站点所需的运行时。看看这个博客 post . 通过明确声明您希望站点使用的.NET framework版本,它可能会有所帮助。

    <configuration> 
        <startup> 
             <requiredRuntime version="v2.0.5027"/> 
        </startup> 
    </configuration>