.net 无法加载文件或程序集';System.Data.dll';或者它的一个依赖项。不是有效的Win32应用程序。(HRESULT的异常:0x800700C1)

.net 无法加载文件或程序集';System.Data.dll';或者它的一个依赖项。不是有效的Win32应用程序。(HRESULT的异常:0x800700C1),.net,winapi,dependencies,.net-assembly,badimageformatexception,.net,Winapi,Dependencies,.net Assembly,Badimageformatexception,我面临着这个问题。我已经为此寻找了各种各样的解决方案,但没有结果,最后决定在这里提问 web应用程序是一个.net 4.0,在一个临时服务器中部署了IIS,直到最近它一直运行良好。它在生产和开发服务器中运行良好 web应用程序平台是“任意CPU”,内置于x64机器,部署于x64机器。但所有引用程序集都使用32位,应用程序dll编译为32位。 我们在IIS应用程序池中设置“启用32位应用程序” 现在,我已将应用程序及其所有程序集重新编译到x86平台,并部署到临时服务器。但同样的错误再次出现 我使

我面临着这个问题。我已经为此寻找了各种各样的解决方案,但没有结果,最后决定在这里提问

web应用程序是一个.net 4.0,在一个临时服务器中部署了IIS,直到最近它一直运行良好。它在生产和开发服务器中运行良好

web应用程序平台是“任意CPU”,内置于x64机器,部署于x64机器。但所有引用程序集都使用32位,应用程序dll编译为32位。 我们在IIS应用程序池中设置“启用32位应用程序”

现在,我已将应用程序及其所有程序集重新编译到x86平台,并部署到临时服务器。但同样的错误再次出现

我使用fusion来记录System.data.dll是否可以正确加载,如下所示


我认为这与服务器有关,因为网站在生产中运行良好。最近在临时服务器中也有一些安全补丁。

为此,我们必须检查以下路径中的GAC文件。 1.c://windows/microsoft.net/assembly/GAC32-->替换新的32位system.dll 2.c://windows/microsoft.net/assembly/GAC64-->替换新的64位system.dll


刚才我这样做解决了问题。

为此,我们必须检查以下路径中的GAC文件。 1.c://windows/microsoft.net/assembly/GAC32-->替换新的32位system.dll 2.c://windows/microsoft.net/assembly/GAC64-->替换新的64位system.dll


刚才我这样做解决了问题。

这是常见的问题,32/64位不匹配,但我如何才能找到不匹配的地方?事实上,所有运行在32位上的web应用程序现在在我们的暂存服务器上都有相同的错误。其中一个依赖项是64位或已损坏。可能是一个运行时文件。您最近更改了什么。这是一个常见的问题,32/64位不匹配,但我如何才能找到不匹配的位置?事实上,所有运行在32位上的web应用程序现在在我们的暂存服务器上都有相同的错误。其中一个依赖项是64位或已损坏。可能是一个运行时文件。你最近改变了什么?谢谢你的回答。我试试看,谢谢你的回答。我试试看