【问题标题】:Moving from IIS6 .net 2.0 (win2k3) to IIS7.5 .net 4.0 (win2k8) --> how to handle web.config assembly V=2.0.0.0从 IIS6 .net 2.0 (win2k3) 迁移到 IIS7.5 .net 4.0 (win2k8) --> 如何处理 web.config 程序集 V=2.0.0.0
【发布时间】:2014-07-02 04:42:14
【问题描述】:

ASP.net 网站:从 IIS6 .net 2.0 (win2k3) 到 IIS7.5 .net 4.0 (win2k8) -

我们在不同的应用程序中有以下汇编条目:

            <add assembly="System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Web.Services, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.DirectoryServices.Protocols, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.EnterpriseServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.ServiceProcess, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Web.RegularExpressions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add assembly="System.Web.Extensions.Design, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add assembly="System.Management, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Drawing.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/></assemblies>         
            <add assembly="System.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />

现在新的 Win2k8 IIS7.5(站点设置为 .net FW 4.0)机器可以按原样处理程序集(一切都是 2.0.0.0.), 但这是正确的方法吗?

第一季度。我应该改变所有的

Version=2.0.0.0

Version=4.0.0.0

然后再次测试系统?

第二季度。是不是跟改版本一样简单,PublicKeyToken 呢? PublicKeyToken 是否在版本 2.0.0.0 和版本 4.0.0.0 之间更改? 如果是这样,我是否要上网查找每个以获取新的 PublicKeyToken?

谢谢

【问题讨论】:

    标签: .net iis-7.5 iis-6 .net-assembly migrate


    【解决方案1】:

    如果应用程序运行良好,请不要触摸它。这是problem solving flowchart 的第一条规则 :)

    如果您更改版本,您可能会遇到麻烦。您的应用程序是使用 .NET 2.0 编译的,并且没有对 .NET 2.0 类/方法和 .NET 4.0 类/方法之间的更改进行完整的代码分析,您无法确定它会做什么(例如,有些可能已被弃用或完全消失)。

    据我所知,win2k8 已安装 .NET 2.0,因此程序集应该在那里。如果您将部署到默认情况下仅安装 .NET 4.x 的 Windows 2012,那将是另一回事。那么它可能就行不通了。

    至于 PublicKeyToken,它对于 .NET 2.0 或 .NET 4.0 应该是相同的,只要 Microsoft 使用相同的密钥来强命名程序集并且程序集的名称不会改变(那将是不同的程序集使用不同的 PublicKeyToken)。

    但是您仍然可以选择在 IIS 7.5 上创建一个 .NET 2.0 池,并让应用程序在为其开发的环境中运行(如果我们排除 iis 版本的话)。

    【讨论】:

      猜你喜欢
      • 2011-08-03
      • 2012-07-03
      • 2014-02-13
      • 1970-01-01
      • 1970-01-01
      • 2011-08-22
      • 1970-01-01
      • 2013-03-22
      • 1970-01-01
      相关资源
      最近更新 更多