我有一个网站,其中存在 DLL 问题(我们开发了该 DLL 作为应用程序的一部分)。在某个时候,DLL 损坏了,从那时起,它就无法在整个网站上向所有用户正确执行其任务,即使损坏是由单个用户会话引起的(我假设)
通过 IIS7 GUI,如果我重新启动网站:管理网站 --> 重新启动,问题仍然存在。但是,如果我停止并启动网站:管理网站 --> 停止,然后管理网站 --> 启动,问题就会解决,问题也会消失……直到下一次
显然,我需要找出损坏的原因,并乐意听取您的任何想法,但我也对重置时和启动/停止时实际发生的情况之间的差异感兴趣
问候,马克
答案1
要彻底清除内存中的不良设置,您应该执行应用程序池回收。这会重新启动实际的 w3wp.exe 工作进程。
重新启动网站是一个短暂的更改,实际上并不会重新启动应用程序池。停止和启动必须足够长的时间才能让应用程序池停止,但它也不一致。
要回收应用程序池,请使用“操作”窗格下的“基本设置”链接查找您的网站正在使用哪个应用程序池。然后,您可以从“应用程序池”部分重新启动应用程序池。
查看第 16 周我的视频系列。它更深入地解释了应用程序池回收。
至于实际的根本原因,Debug Diag 是一个很好的工具,它可以让您在问题发生时获取内存转储。希望这能为您提供有关根本问题的足够线索。