.net - 无法在IIS 7.5上使用Enable32Mode加载32位dll

标签 .net asp.net-mvc iis iis-7 windows-server-2008

我有一个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:我发现这个question试图做同样的事情,他放弃了这并没有太大帮助!

最佳答案

确保所有托管程序集的目标属性为x86,而不是项目属性中的Any CPUx64

关于.net - 无法在IIS 7.5上使用Enable32Mode加载32位dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6320957/

相关文章:

c# - 如何观察由于 C# 中另一个等待任务失败而未等待的任务?

asp.net - 默默地将api资源移动到另一个url

Apache 和 IIS 共享相同的 SSL 证书

c# - 适用于 .NET 的 Python 中的可空类型 (C#)

.net - web.config 忽略 Settings.Default.<Property> 并始终使用默认值

asp.net-mvc - 如何在自定义助手中合并 htmlAttributes

c# - 如何从下拉列表中获取id?

html - 带有 Bootstrap 4 的 ASP.NET MVC

python - 如何在 django+fastcgi+IIS 设置中销毁资源?

c# - Intellitrace 和 Windows 服务