64位操作系统下IIS报“试图加载格式不正确的程序”错误(转)
2013-04-01 14:28
281 查看
缘由:在64位操作系统下IIS发布32位的项目,报“项目依赖的dll无法读取,试图加载格式不正确的程序”错误。
原因:程序集之间的通讯要么全是64位环境下的,要么全是32位环境下的。不能混编访问。不然会出现“试图加载格式不正确的程序”的错误。
解决方法:
【C/S】
运行C/S程序比较简单,直接在Build C/S程序的时候显式指定为X86(64位系统默认为X64)就可以了。
【B/S】
运行B/S稍稍复杂点。在建立网站的时候,又分为两种情况。
A:建立的是“项目”:这个时候跟 C/S 的处理是一样。
B:建立的是“网站”:只需要修改IIS的配置就可以了。
i)“cscript %systemdrive%/inetpub/adminscripts/adsutil.vbs set w3svc/appPools/enable32bitapponwin64 1”
(enable32bitapponwin64为1代表可运行32位应用程序),该项可以通过 “命令行”执行一次。(此命令的作用是使IIS能够注册32位的.net FW)
ii)64位OP默认是在IIS下注册了64位的.net Framework的,因此还必须再注册一个32位的.net Framework
C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727> aspnet_regiis.exe -i
另附:64位windows IIS 32位与64位转换方法
64位版本的iis并不提供Microsoft OLE DB Provider for Jet驱动支持,所以,如果想在64位windows下使用asp或者asp.net连接access,需要将iis以32位的模式进行连接。以下转载自其他网站的64位系统下32位iis与64位之间转换的方法。
ASP.NET 2.0,32 位版本 要运行 32 位版本的 ASP.NET 2.0,请按照以下步骤操作: 1. 单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。 2. 键入以下命令启用 32 位模式: cscript %SYSTEMDRIVE%/inetpub/adminscripts/adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1 3. 键入以下命令,安装 ASP.NET 2.0(32 位)版本并在 IIS 根目录下安装脚本映射: %SYSTEMROOT%/Microsoft.NET/Framework/v2.0.50727/aspnet_regiis.exe -i 4. 确保在 Internet 信息服务管理器的 Web 服务扩展列表中,将 ASP.NET 版本 2.0.40607(32 位)的状态设置为允许。
ASP.NET 2.0,64 位版本 要运行 64 位版本的 ASP.NET 2.0,请按照以下步骤操作: 1. 单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。 2. 键入以下命令禁用 32 位模式: cscript %SYSTEMDRIVE%/inetpub/adminscripts/adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 0 3. 键入以下命令,安装 ASP.NET 2.0 版本并在 IIS 根目录下安装脚本映射: %SYSTEMROOT%/Microsoft.NET/Framework64/v2.0.50727/aspnet_regiis.exe -i 4. 确保在 Internet 信息服务管理器的 Web 服务扩展列表中,将 ASP.NET 版本 2.0.40607 的状态设置为允许。 注意:ASP.NET 2.0 的内部版本可能随当前发行的内部版本的变化而变化。这些步骤适用于内部版本 2.0.40607。
原因:程序集之间的通讯要么全是64位环境下的,要么全是32位环境下的。不能混编访问。不然会出现“试图加载格式不正确的程序”的错误。
解决方法:
【C/S】
运行C/S程序比较简单,直接在Build C/S程序的时候显式指定为X86(64位系统默认为X64)就可以了。
【B/S】
运行B/S稍稍复杂点。在建立网站的时候,又分为两种情况。
A:建立的是“项目”:这个时候跟 C/S 的处理是一样。
B:建立的是“网站”:只需要修改IIS的配置就可以了。
i)“cscript %systemdrive%/inetpub/adminscripts/adsutil.vbs set w3svc/appPools/enable32bitapponwin64 1”
(enable32bitapponwin64为1代表可运行32位应用程序),该项可以通过 “命令行”执行一次。(此命令的作用是使IIS能够注册32位的.net FW)
ii)64位OP默认是在IIS下注册了64位的.net Framework的,因此还必须再注册一个32位的.net Framework
C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727> aspnet_regiis.exe -i
另附:64位windows IIS 32位与64位转换方法
64位版本的iis并不提供Microsoft OLE DB Provider for Jet驱动支持,所以,如果想在64位windows下使用asp或者asp.net连接access,需要将iis以32位的模式进行连接。以下转载自其他网站的64位系统下32位iis与64位之间转换的方法。
ASP.NET 2.0,32 位版本 要运行 32 位版本的 ASP.NET 2.0,请按照以下步骤操作: 1. 单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。 2. 键入以下命令启用 32 位模式: cscript %SYSTEMDRIVE%/inetpub/adminscripts/adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1 3. 键入以下命令,安装 ASP.NET 2.0(32 位)版本并在 IIS 根目录下安装脚本映射: %SYSTEMROOT%/Microsoft.NET/Framework/v2.0.50727/aspnet_regiis.exe -i 4. 确保在 Internet 信息服务管理器的 Web 服务扩展列表中,将 ASP.NET 版本 2.0.40607(32 位)的状态设置为允许。
ASP.NET 2.0,64 位版本 要运行 64 位版本的 ASP.NET 2.0,请按照以下步骤操作: 1. 单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。 2. 键入以下命令禁用 32 位模式: cscript %SYSTEMDRIVE%/inetpub/adminscripts/adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 0 3. 键入以下命令,安装 ASP.NET 2.0 版本并在 IIS 根目录下安装脚本映射: %SYSTEMROOT%/Microsoft.NET/Framework64/v2.0.50727/aspnet_regiis.exe -i 4. 确保在 Internet 信息服务管理器的 Web 服务扩展列表中,将 ASP.NET 版本 2.0.40607 的状态设置为允许。 注意:ASP.NET 2.0 的内部版本可能随当前发行的内部版本的变化而变化。这些步骤适用于内部版本 2.0.40607。
相关文章推荐
- 试图加载格式不正确的程序 64位操作系统下IIS报“试图加载格式不正确的程序”错误
- 64位操作系统下IIS报“试图加载格式不正确的程序”错误(转)
- 64位操作系统下IIS报“试图加载格式不正确的程序”错误 转
- 64位操作系统下IIS报“试图加载格式不正确的程序”错误
- 64位操作系统下IIS报“试图加载格式不正确的程序”错误(转)
- 64位操作系统下IIS报“试图加载格式不正确的程序”错误
- 64位操作系统下IIS报“试图加载格式不正确的程序”错误
- 64位操作系统下IIS报“试图加载格式不正确的程序”错误 .
- 64位操作系统下IIS报“试图加载格式不正确的程序”错误
- 64位操作系统下IIS报“试图加载格式不正确的程序”错误
- 64位操作系统下IIS报“试图加载格式不正确的程序”错误
- 64位操作系统下IIS报 试图加载格式不正确的程序 的解决方案
- 64位操作系统下IIS报“试图加载格式不正确的程序”错误
- 64位操作系统下调用32dll报“试图加载格式不正确的程序”
- 64位系统 IIS7.0配置.net网站时报错:未能加载文件或程序集“XXX”或它的某一个依赖项。试图加载格式不正确的程序。
- 水晶报表 关于错误未能加载文件或程序集“CrystalDecisions.ReportAppServer.ClientDoc”或它的某一个依赖项。试图加载格式不正确的程序
- “/”应用程序中的服务器错误。未能加载文件或程序集“XXXXXX”或它的某一个依赖项。试图加载格式不正确的程序。
- asp.net 关于 试图加载格式不正确的程序 <add assembly="*"/>错误
- IIS架设WebService服务端的基本错误:试图加载格式不正确的程序
- win7 64位 未能加载文件或程序集“XXX”或它的某一个依赖项。试图加载格式不正确的程序。