版本冲突:
编译器错误信息: CS0433: The type 'System.Web.UI.ScriptManager' exists in both 'c:/WINDOWS/assembly/GAC_MSIL/System.Web.Extensions/1.0.61025.0__31bf3856ad364e35/System.Web.Extensions.dll' and 'c:/WINDOWS/assembly/GAC_MSIL/System.Web.Extensions/3.5.0.0__31bf3856ad364e35/System.Web.Extensions.dll'
这时候要在web.config <configuration>里加上
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
好不容易搞到没有异常了- -
发现updatepanel加了跟没加一样,真是空欢喜一场
然后不停找找找原因,终于发现<xhtmlConformance mode="Legacy"/>闯的祸,
我实在想不明白这个web标准的设置跟ajax加载相关js有什么关系,可能微软觉得自己生成的js不够web标准,所以就只加载了一部分,以至于updatepanel失效,就算是这样,你也抛个异常出来啊!害我搞了半天没搞明白!
不过总算找到根源了.于是把那一节去掉.
到这里基本就好了,但是如果之前手痒痒在 <httpHandlers>里加了
<add verb="*" path="WebResource.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
的话,就会出现
要处理此请求,必须在配置中注册 WebResource.axd 处理程序。
<!-- Web.Config 配置文件 -->
<configuration>
<system.web>
<httpHandlers>
<add path="WebResource.axd" verb="GET" type="System.Web.Handlers.AssemblyResourceLoader" validate="True" />
</httpHandlers>
</system.web>
</configuration>
这个时候大家都会奇怪,明明已经注册了 WebResource.axd 处理程序,干嘛还要加呢?????没错...世事往往就是这么难料,特别是跟微软有关的,处理方法就是把<add verb="*" path="WebResource.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>去掉- -