Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 在AppPool上禁用32位应用程序的问题_Asp.net_.net_Iis_X86_Assemblies - Fatal编程技术网

Asp.net 在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位进

我们有一个基于ASP.NET Web表单开发的网站

该网站一直在使用AppPool运行,AppPool允许32位应用程序。很长一段时间

(启用32位应用程序=True)

出于某些原因,现在我们需要禁用AppPool上的32位应用程序

我试图禁用它,结果很奇怪,AppPool崩溃了,几个小时后自动停止工作。网站停止工作,直到我手动启动应用程序池

然后,我查看了为网站提供动力的每个DLL,包括第三方库。为此,我使用了CorFlags。未找到任何32位程序集。所有程序集要么是64位的,要么是在64位进程上运行没有问题的任何CPU

然后我检查了网站的虚拟目录和应用程序。也没有32位程序集

所以,我真的被困在这个问题上了。我需要禁用AppPool上运行的32位应用程序

问题

  • 禁用32位应用程序后的AppPool崩溃是否真的与进程上正在运行的32位应用程序/程序集有关?这是导致坠机的原因吗?我在整个项目源代码中并没有找到任何32位程序集。他们还能在哪里?我需要查找32位程序集的任何其他位置

  • 为了诊断问题,我还需要调查什么?假设我没有找到任何32位程序集,那么在禁用32位应用程序后,AppPool崩溃的原因可能是什么


  • 谢谢大家

    有没有.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