微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

IIS 7.5上的Enable32Mode无法加载32位dll

如何解决IIS 7.5上的Enable32Mode无法加载32位dll

|| 我有一个MVC 3网站引用32位DLL。操作系统为Windows 2008 R2 x64。该网站位于ASP.NET 4应用程序池中。我已启用Enable32Bit,但它不起作用。我收到错误的图像异常,但找不到在IIS中打开此级别的登录。我已经建立了一个页面输出页面是运行32位还是运行64位,当我打开/关闭AppPool上的Enable32Bit时,我会得到正确的输出。该网站也是完全信任的。 我不知所措,尝试并使其正常工作。我确实知道它可以在Win7 32bit上运行。 您可以建议一些尝试的方法吗? 更新:我刚刚编写了一个简单的Windows Forms App,上面带有一个按钮,该按钮调用我的DLL。这是针对x86的目标而构建的,并且运行良好,因此我认为IIS或ASP.Net存在问题。这是用于引用DLL的代码
        [DllImport(\"CDCrypt.dll\")]
        [return: MarshalAs(UnmanagedType.LPStr)]
        public static extern String Encrypt([MarshalAs(UnmanagedType.LPStr)] String aName);



        [DllImport(\"CDCrypt.dll\")]
        [return: MarshalAs(UnmanagedType.LPStr)]
        public static extern String Decrypt([MarshalAs(UnmanagedType.LPStr)] String aName);
更新2:ASP.Net管道是Clasic还是集成,这有关系吗?我试过两个但都相同的问题,但认为值得一问 更新3:我发现这个问题试图做同样的事情,他放弃了,这不是太有用!     

解决方法

        确保在项目属性中,所有托管程序集的目标都是
x86
,而不是
Any CPU
x64
。     ,        最好您以64位模式或任何CPU模式构建非托管dll。有时,当我们在托管应用程序的应用程序池中启用32位应用程序时,它将加载32位程序集。如果此选项不起作用,则应将其替换为64位库。还回收应用程序池并重新启动iis。希望它能工作。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。