尝试加载具有错误格式ERROR的程序

时间:2014-01-21 11:26:10

标签: c# .net web-services

我正在尝试创建一个Web服务,其中的函数由64位DLL执行。当我尝试构建此服务时,我收到错误“尝试加载格式不正确的程序”。 但是,当我运行32位DLL时,它工作正常。

我正试图在C#

的.net 4框架上的visual studio 2012中运行

我尝试更改IIS中的应用程序池设置,并将构建平台目标更改为任何cpu。无法确定问题的来源。请为您提供帮助。谢谢

3 个答案:

答案 0 :(得分:2)

右键单击您正在使用的应用程序池,然后转到Advanced Settings。在(General)下,有一个名为Enable 32-Bit Applications的设置。如果您在64位操作系统上运行并且设置为true,则应用程序池将是32位进程,因此您的64位DLL将无法加载。将其设置为false,使您的应用池成为64位进程。

另外,请检查您正在构建的DLL的依赖关系是否为64位。它可能使用32位dll /汇编。如果您的代码中有任何[DllImport]属性,请查看它们引用的.dll并确保它们是64位兼容的。

答案 1 :(得分:0)

如果您的Web服务引用64位dll,则必须将其编译为x64

答案 2 :(得分:0)

尽量不要将AnyCPU编译与32位或64位DLL混合(DLL可以编译为32位或64位或两者兼有) - 行为将取决于平台,在某些环境中它会起作用,有些则不行。