Asp.net 在AppPool上禁用32位应用程序的问题
我们有一个基于ASP.NET Web表单开发的网站 该网站一直在使用AppPool运行,AppPool允许32位应用程序。很长一段时间 (启用32位应用程序=True) 出于某些原因,现在我们需要禁用AppPool上的32位应用程序 我试图禁用它,结果很奇怪,AppPool崩溃了,几个小时后自动停止工作。网站停止工作,直到我手动启动应用程序池 然后,我查看了为网站提供动力的每个DLL,包括第三方库。为此,我使用了CorFlags。未找到任何32位程序集。所有程序集要么是64位的,要么是在64位进程上运行没有问题的任何CPU 然后我检查了网站的虚拟目录和应用程序。也没有32位程序集 所以,我真的被困在这个问题上了。我需要禁用AppPool上运行的32位应用程序 问题Asp.net 在AppPool上禁用32位应用程序的问题,asp.net,.net,iis,x86,assemblies,Asp.net,.net,Iis,X86,Assemblies,我们有一个基于ASP.NET Web表单开发的网站 该网站一直在使用AppPool运行,AppPool允许32位应用程序。很长一段时间 (启用32位应用程序=True) 出于某些原因,现在我们需要禁用AppPool上的32位应用程序 我试图禁用它,结果很奇怪,AppPool崩溃了,几个小时后自动停止工作。网站停止工作,直到我手动启动应用程序池 然后,我查看了为网站提供动力的每个DLL,包括第三方库。为此,我使用了CorFlags。未找到任何32位程序集。所有程序集要么是64位的,要么是在64位进
谢谢大家 有没有.NET的东西使用旧式(C/C++)DLL?如果这些DLL是32位的,那么如果从64位进程调用,.NET DLL/EXE(在这种情况下,应该使用corflags将.NET DLL/EXE标记为32位)就会发生崩溃。有这些类型的DLL(C/C++),但它们不是32位的。我已经用CorFlags检查过了,在结果消息中,32位旁边的数字是
0
。如果CorFlags为32位
提供了一个值,那么它们就不是我所说的DLL类型。在非管理DLL上运行coflags会给出:corflags:error CF008:指定的文件没有有效的托管头
,则没有您正在谈论的那种类型的DLL。因为我在用CorFlags检查DLL时没有看到任何错误消息。在所有情况下,我都得到了一个有意义的结果。我对ASP.NET和应用程序池的经验有限,因此可能还有许多其他原因导致您的问题,但如果是与未管理的DLL有关,您可以尝试的最后一件事是运行ILDASM one of.DLL
。打开M A N I F E S T
条目,如果存在任何非托管dll,则应将其列为.module extern ThirdParty.dll
。