64位win2008下IIS未开启32位支持导致DLL无法加载问题

部署一个WEB项目,在本机、本地服务器都没有问题,但部署到远程服务器以后,提示有个DLL无法加载:

Server Error in ‘/‘ Application.

Could not load file or assembly ‘Common.Component.Repository‘ or one of its dependencies. An attempt was made to load a program with an incorrect format.

首先肯定的是,系统声称无法加载的DLL千真万确存在

其次从本机、本地服务器都没有问题推测,似乎最有可能的原因是该远程服务器的环境有问题。但是,远程服务器是装了.NET4.5.2的,并且跑其他WEB项目都没问题。WEB项目所对应的应用程序池也是4.0,排除选了2.0的原因。

后来该WEB项目的开发者在IIS的应用程序池上开启了32位支持,问题解决。原来,远程服务器的是64位的WIN SERVER 2008。

开启32位支持的方法是:

选中WEB项目对应的应用程序池,右键,高级设置,Enable 32-bit Application = True。

网上类似文章

http://goxia.maytide.net/read.php/1541.htm

时间: 2024-10-11 03:09:59

64位win2008下IIS未开启32位支持导致DLL无法加载问题的相关文章

This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed(在64位模式下运行安装了32位的Oracle客户端组件时,会发生此问题)

部署win服务时出现下面的问题: 在事件查看器中看到如下错误: 日志名称: Application来源: ***调度服务日期: 2014/5/21 12:53:21事件 ID: 0任务类别: 无级别: 错误关键字: 经典用户: 暂缺计算机: ams-webserver描述:Service cannot be started. Achievo.Utility.DataAccess.DbException: Attempt to load Oracle client libraries threw

64位Win2003系统让IIS运行在32位的环境下

安装了WIN2003系统64位的,IIS也是运行在64位下面,可是要使用伪静态,又找不到64位的伪静态组件,所以只好让IIS 运行在32位下面了,方法如下: cscript %systemdrive%\inetpub\adminscripts\adsutil.vbs set w3svc/appPools/enable32bitapponwin64 1 如果又想恢复或者修改成64位下面运行IIS,就执行下面的命令: cscript %systemdrive%\inetpub\adminscript

64位操作系统下IIS报“试图加载格式不正确的程序”错误

缘由:在64位操作系统下IIS发布32位的项目,报“项目依赖的dll无法读取,试图加载格式不正确的程序”错误. 原因:程序集之间的通讯要么全是64位环境下的,要么全是32位环境下的.不能混编访问.不然会出现“试图加载格式不正确的程序”的错误. 解决方法: [C/S] 运行C/S程序比较简单,直接在Build C/S程序的时候显式指定为X86(64位系统默认为X64)就可以了. [B/S] 运行B/S稍稍复杂点.在建立网站的时候,又分为两种情况. A:建立的是“项目”:这个时候跟 C/S 的处理是

Win7/Win2008下IIS配置Asp站点启用父路径的设置方法(已解决)

在Win7/Win2008下IIS配置Asp站点启用父路径的设置方法与win2003下不同,看看下图就知道了! Win7/Win2008下IIS配置Asp站点启用父路径的设置方法(已解决)

Win7/Win2008下IIS配置Asp站点的注意事项!

按下面的图示设置,完成后,最好重启网站和应用地址池! Win7/Win2008下IIS配置Asp站点的注意事项!

如何在64位版本Linux上开发运行32位应用程序

最近换了Linux系统,由i686换成了x86-64,导致在进行开发的时候出用不了原来SDK中32位的开发工具.于是,博主找到如下文章,博主亲测实用: 如何在64位版本Linux上开发运行32位应用程序 内容如下: 很多程序员(特别是别的公司的)跟我抱怨说他们32位软件无法在我们的64位Linux系统上正常运行,而在他们32位机上正常,其实这个很好解决,一般 是64位系统安装后没有默认安装glibc的32位版本,通过简单的执行以下命令即可实现在64位Linux系统上开发运行32位应用程序,而不用

arm32位固定指令中怎么容纳32位变量

在ARM指令集汇编码中,32位有效立即数是通过______偶数位而间接得到的 A.循环左移 B.循环右移. C.逻辑左移. D.逻辑右移 答案为循环左移,为什么?还有最好解释一下逻辑移动和循环移动的概念 在ARM指令中,有三个操作数,目的操作数,第一原操作数,第二原操作数,其中最有意思的就是第二原操作数了,在ARM 指令中,第二原操作数共有12位,分成两个部分,一个部分占8位,能表示0-255,另外一个部分占4位,表示第一个部分8位数零扩展成32位的右循环移位,0001右循环移位2位,0010右

:尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。 ---> System.BadImageFormatException: 试图加载格式不正确的程序。

iis有程序池有一个属性  是否启用32位应用程序默认是true的特别注意windows2008 服务器系统iis默认的是true 这样发布一下也是必须要做的

Windows下游戏程序使用32位的dll文件-解决“应用程序无法正常启动0xc000007b”问题

Windows7下刚刚安装完游戏,启动游戏时缺失dll文件,在游戏安装目录下补充之后启动出现错误: 应用程序无法正常启动0xc000007b 找到原因是在添加dll文件时使用了适合64位系统的dll文件,应该使用适合32位系统的dll文件(尽管系统为64位). 参考链接:应用程序无法正常启动0xc000007b怎么解决 猜测原因是可能游戏制作时使用的全部是适合32系统的动态链接文件.