问题来源:
atlas更名为asp.net ajax前,安装了开发包就可以在网站的BIN目录下生成相应的atlas的dll文件,这样发布时连同所有的dll组件都会发布出去,但是目前ajax准备在vs2007集成到工具箱中,所以现在在vs2005上安装rc版的ajax时,其控件的命名空间已经变为:System.Web.Extensions,在发布网站的时候在bin目录中也不会产生任何的DLL组件。由此产生的问题就是当生成的网站被发布到服务器上时会产生脚本错误,ajax的功能不能实现。
测试环境:
开发机器winxpsp2,vs2005sp1,服务器发布win2003sp4,.net2.0framework
希望早日用上正式版的vs2007
解决办法:
1,在开发机器上安装ASPAJAXExtSetup.msi本文发布日期是07年2月份,ajax版本是RC1
2,找到ajax的安装路径,我的是C:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025
把其中的System.Web.Extensions.Design.dll和System.Web.Extensions.dll两个文件拷贝到你的网站的bin目录中
3,希望你的网站是新建立的,把ajax目录中的web.config拷贝到你的网站的根目录中覆盖以前的,如果你已经对你的web.config进行过编辑的话,还是手动把相关设置节复制到你的web.config中。
4,到控制面版中卸载asp.net ajax 1.0
5,然后添加对你网站中bin目录中的这两个DLL文件的引用,如果你的vs2005打过sp1,在网站的“解决方案资源管理器”中的“引用”加入这两个DLL文件来增加它的命名空间。
6,发布网站
7,如果还想用ajaxtoolkid的话请将相应的dll文件复制到bin目录下,并添加引用
一些说明:
建议把vs2005打上sp1补丁,可以直接新建asp.net项目,有自己的项目文件,一个页面有三个文件构成,像是回归到vs2003了,也许sp1更贴近vs2007吧。
如果不打这个补丁,在母版页面的子页面中的ajax控件会出现验证(Intellisense)失败的问题。
忠告:
atlas版本众多,几天一变,终于到了RC,还可能有RC1,RC2等,建议减少代码的复杂度,以便适应升级,还好一度被拿掉的timer控件又回来了。
vs2005的sp1是史上比较恐怖的东西,安装前一定要有足够的准备(包括心理准备)
设置器中所有ajax控件的tagPrefix名都变成了"asp",不再是以前的cc1这类的命名了,就像普通服务端控件一样了。
下面就是我为大家提供的一个Ajax控件,先安装,然后再按照上面的去不奏去做。如果你们在弄配置文件的时候,发现会报一个错误,就是<configuration>下面必须有个<configSections>,而你配置里面又有这两个,那么就是这两个节点中间可能还会有其他节点在<configSections>前面。交换下位置就可以了