博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
    前两天,在编写ASP.NET 2.0的项目时,用到了Ajax Extension,.NET 2.0用的Ajax Extention是 1.0.61025.0 版本的。碰巧在开发的电脑上装了VS2008。问题出现了,再编译2.0这个项目,然后发不到Server上之后,运行Server上的这个WebSite,出现错误Could not load file or assembly 'System.Web.Extensions, Version=3.5.0.0......', 这时候打开Web.Config,会发现在<assemblies>节中有两个配置节:

 

<add assembly="System.Web.Extensions.Design, Version=3.5.0.0,
Culture=neutral, PublicKeyToken=31BF3856AD364E35
"/>
<add assembly="System.Web.Extensions, Version=3.5.0.0,
Culture=neutral, PublicKeyToken=31BF3856AD364E35
"/>

    从上面的代码可以看到,编译器把System.Web.Extensions的3.5的版本编译进来了。把这个版本号改成1.0.61025.0,再编译一次,部署到Server上,运行Server上的WebSite。仍然会出现这个错误。
解决这个问题也很简单。到VS2008 Beta 2 的Download页面,他们说:
IMPORTANT: After the Beta 2 installation has finished, you should run this script to ensure that the installation of .NET Framework 3.5 Beta 2 will not affect the development of ASP.NET AJAX 1.0 applications.
    原来我没有下载并运行这个脚本,在网上搜一下发现并非一个人遇到这个问题,我相信并不是所有人读过VS下载页面的这个文章。安装VS2008后,下载这个脚本运行一下,这个问题就解决了。


2007/12/12补充:
    现在微软已经取消了Beta2 的下载。这个脚本文件在原来的download页也找不到了。现在我把我之前下载过的文件放到这里来,以方便遇到这个问题的朋友使用。DisableAjaxPolicy.rar