System.BadImageFormatException:无法加载文件或程序集' PasswordValidator'或其中一个依赖项

时间:2018-05-10 02:36:34

标签: c# oracle iis

我需要在我的项目中引用 几个32位dll 。基本上,它包含几个连接到 Oracle DB 的WCF服务,并执行一些CRUD操作。当我将我的解决方案部署到IIS并将应用程序池设置为

启用32位应用 错误 ,获取此异常......

System.BadImageFormatException: Could not load file or assembly 'PasswordValidator' or one of its dependencies. An attempt was made to load a program with an incorrect format

启用32位应用 True ,获取此异常......

The 'OraOLEDB.Oracle' provider is not registered on the local machine.

连接字符串是:

Provider = OraOLEDB.Oracle; Data Source =lsdb; User ID =ls_Data; Password =oracle

我已安装 64位Oracle客户端 ,这是 问题 。当我安装 32位Oracle客户端 时,问题是 已解决 。如何通过 64位Oracle客户端 解决此问题。

我尝试通过将平台目标设置为 64位,任何CPU,x86 来构建项目。没用如果我设置为64,如果我将启用32位设置为True(当然,预期的行为),我的DLL本身就无法加载。

1 个答案:

答案 0 :(得分:0)

要解决这个问题,

将IIS中的Apppool的启用32位应用程序设置为 True

取消选中使用64位版本的IIS Express进行网站和项目设置工具 - &gt;选项 - &gt;项目和解决方案 - &gt;网络项目 < / p>

Use 64-bit version of IIS

使用 ODP.NET托管驱动程序(Oracle.ManagedDataAccess.Client)进行Oracle数据库连接非OLEDB

不要忘记将目标平台设置为任何CPU

进行编译

感谢Wernifried Domscheit