2010-07-29 121 views
3

我有一个使用32位DLL的C#web应用程序。每次我尝试访问该服务,我得到64位IIS7不会运行32位DLL,即使启用了32位

"Could not load file or assembly 'RegCheck' or one of its dependencies. An attempt was made to load a program with an incorrect format. " 

我切换了IIS池,以使32位,重置一切,又试了一次 - 但仍是同样的错误。

我发现的大多数问题已经通过“32bit enabled = true”更改解决。有任何想法吗?

+0

您可以成功从32位C#控制台应用程序访问DLL吗? – Heinzi 2010-07-29 11:03:44

+0

是的,它似乎确定当我访问VS2008 – Yossale 2010-07-29 11:34:08

回答

1

尝试通过控制台应用程序访问它,没有安装开发工具(即没有安装VS2008的实时环境或开发服务器),然后重试(RE:Heinzi发布的评论)。

如果您仍然可以检查您的Web应用程序是否在正确的.NET框架版本下运行(并且它已安装在服务器上)。

由于这看起来不是需要32位应用程序打开的ISAPI DLL,而是C#Web App。我的钱是在服务器上的web应用程序部署有问题,而不是DLL本身。另外请记住,如果DLL不是.NET,那么您需要先使用regsrv32在服务器上注册它,然后才能通过Web应用程序访问它。

希望我帮了忙。在你的web应用程序

编辑

如果所有其他尝试都失败,请尝试重新编译您正在使用设置目标,以X86编译器和DLL重新引用它。

+0

很酷,谢谢!我会尝试一下 – Yossale 2010-07-29 11:50:55

+0

还要确保如果你在服务器上运行不同的.NET web应用程序,为这个特定的站点创建一个应用程序池(IIS7自动完成的东西,但正如一个笔记一样) – AcidRaZor 2010-07-29 11:51:32