在同一台服务器上部署ASP.net Ajax 1.0和3.5 Web应用程序

问题描述 投票:3回答:1

我们有一个生产服务器,它具有运行Ajax 1.0的ASP.net 2.0应用程序和相应的工具包(Toolkit版本1.0.20229)。

我被要求使用ASP.net 3.5移动另一个应用程序构建,它还使用了最新的ASP.NET AJAX和相应的工具包(Toolkit Version 3.0.X)。

如果我安装.Net Framework 3.5(服务器上的当前版本是2.0),这两个应用程序可以存在于同一台服务器上吗?

我应该做些什么来确保没有兼容性问题?

如果问题不明确,请告诉我。

谢谢,

三月

结果:已安装的Framework 3.5。 配置文件的更改是根据收到的错误进行的,包括:删除了以下条目:

<httpModules> <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> </httpModules> 

除了上面的内容,还必须为WCF服务取出以下部分

<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
asp.net-ajax
1个回答
1
投票

应用程序应该并行运行良好。

如果您将ajax控件工具包作为本地引用的.dll分发(换句话说,您已将.dll文件添加到项目中,并引用该本地文件),那么您应该对该工具包没有任何问题。

至于Ajax(System.Web.Extensions)引用,您可以做两件事:

2)浏览项目中的引用并将“SpecificVersion”设置为“true”,这将强制项目始终引用它的2.0版本

3)只需使用3.5版本。 如果SpecificVersion未设置为true,则可能会自动执行此操作,但如果不是,则可以使用web.config的bindingRedirect元素映射第一个项目中的引用,如下所示:

<configuration>
   <runtime>
      <assemblyBinding>
         <dependentAssembly>
            <assemblyIdentity name="System.Web.Extensions"
                              publicKeyToken="31bf3856ad364e35"
                              culture="neutral" />
            <bindingRedirect oldVersion="1.0.61025.0"
                             newVersion="3.5.0.0"/>
         </dependentAssembly>
      </assemblyBinding>
   </runtime>
</configuration>

这种方法的侵入性最小,因为您根本不需要触摸项目。 这也适用于任何有明确引用System.Web.Extensions 1.0版本的第三方dll。

我已经将项目从使用2.0框架的Ajax版本升级到3.5版本,并且没有遇到任何问题。

祝好运!

© www.soinside.com 2019 - 2024. All rights reserved.