未能加载文件或程序集 'System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
“/xxxxx”应用程序中的服务器错误。
--------------------------------------------------------------------------------
未能加载文件或程序集“xxx”或它的某一个依赖项。试图加载格式不正确的程序。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.BadImageFormatException: 未能加载文件或程序集“xxx”或它的某一个依赖项。试图加载格式不正确的程序。
源错误:
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。
解决方法:
将应用程序生成为Any CPU就可以了
反之,如果系统是64位的Win7,就应该将新项目的生成目标平台改为x86
综上:
64位的Win7 解决方案的生成目标平台设置为x86
32位操作系统 解决方案的生成目标平台设置为AnyCPU
另外一个网友的问题解决方法:
我遇到过这个问题有两次,不过环境不同。
第一次:Windows 2008 Server R2 64位;
第二次:Windows 7 64位;
原因分析:操作系统是64位的,但发布的程序引用了一些32位的ddl,所以出现了兼容性的问题。
解决方案:IIS——应用程序池——高级设置——启用32位应用程序 :true。
另一种情况:
未能加载文件或程序集 'System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
如果就对类似的错误来说(可能不是提示 System.Web.Extentions):
-
指缺少某个 DLL(错误提示中对应的那个);
-
或者是 DLL 没有放到 bin 目录下;
-
或者是升级了后改变了版本号,相关引用没有跟着更新,还是去读的老的版本号。
如果就对本错误来说(提示的就是 System.Web.Extentions):
上述错误大致说明了:程序使用了 ASP.NET AJAX,但 .NET Framework 环境中没有配置相应的 AJAX 环境。
法一、如果当前环境是 .NET Framework 3.5,而程序使用的是 2.0,那么可以将程序升级为 3.5 解决。升级方法是用 Visual Studio 或 Visual Web Developer 打开网站,在网站上右键->“属性页”->“生成”->“目标 Framework”。这是因为 3.5 环境下本身就含有 AJAX 的核心内容。
法二、如果当前环境就是 .NET Framework 2.0,或者不想升级程序为 3.5,那么可以到http://www.asp.net/ajax/downloads/ 下载并安装 ASP.NET AJAX Extensions,目前微软还是对 2.0 提供技术支持的。
法三、如果法二中无法进行安装,可在安装了 ASP.NET AJAX Extensions 的机器上,在 C:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025 目录下找到 System.Web.Extensions.dll 和System.Web.Extensions.Design.dll,将这两个文件复制到网站的 bin 目录。