用于在64位进程中运行32位DLL的解决scheme,反之亦然

我正在运行Windows Vista的业务64位。 我有一个使用C#编写的.NET Web服务。 我还在与Web服务通信的网页上有一个客户端脚本。 这是一个名为“Default.aspx”的aspx页面。 我安装IIS并将包含Web服务的所有文件以及运行它的所有文件(包括default.aspx页面)移到C:\ inetpub \ wwwroot中。 我打开IISpipe理器,并正确configuration一切。 我现在收到一条错误消息:

试图加载格式不正确的程序。 (从HRESULTexception:0x8007000B)

我被告知,这可能是我的许可证密钥的问题,应用程序被configuration为不同的格式,或有一个损坏的文件的地方。 我的许可证密钥是好的,我不相信有一个损坏的文件。 我认为这个问题是我试图加载一个32位的DLL到一个64位的进程或反之亦然。 详细的错误信息如下。 如果有人能给我一个详细的解决scheme,我已经给了一个详细的描述,我非常欣赏它。 我一整天都在摔跤,我很沮丧。 请帮帮我。

exception详细信息:System.BadImageFormatException:试图加载格式不正确的程序。 (从HRESULTexception:0x8007000B)

源错误:

在执行当前Web请求期间生成未处理的exception。 有关exception的来源和位置的信息可以使用下面的exception堆栈跟踪来标识。

堆栈跟踪:

[BadImageFormatException:试图加载格式不正确的程序。 (来自HRESULT的exception:0x8007000B)] D:\ Project Details \ Layne Projects \ DotNet Project \ FaceRecognition \ FaceRecognition \ Default中的Luxand.FSDK.ActivateLibrary(String LicenseKey)+0 FaceRecognition._Default.Page_Load(Object sender,EventArgs e)。 aspx.cs:60 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp,Object o,Object t,EventArgs e)+25 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender,EventArgs e)+42 System.Web .UI.Control.OnLoad(EventArgs e)+132 System.Web.UI.Control.LoadRecursive()+66 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)+2428

在IIS 7中,可以将应用程序池configuration为以32位模式运行; 当您必须访问仅适用于32位系统的DLL时,这非常有用。

您可以修改默认的应用程序池的属性,使您的整个Web服务器以x86模式运行,也可以创build一个新的应用程序池,将其configuration为32位,并为其指定特定的Web站点和/或虚拟目录。