如果你将应用程序生成x86而不是Any CPU时,在64位操作系统中不会出错错误,而在32位操作系统中可能会出现以下错误
“/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。
IIS10安装IIS URL重写模块2伪静态组件提示需要IIS7.0以上版本。
windows server 2016 64系统在安装IIS URL重写模块2伪静态组件提示需要IIS7.0以上版本。
解决方法:
打开注册表
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp
双击右边MajorVersion
,默认的数值是a
,修改成9
,然后再安装 ,安装完成后,再把数值修改为a
即可。