【发布时间】:2009-09-22 22:32:45
【问题描述】:
我面临以下问题,此时我觉得我严重缺乏某种工具,我只是不知道那个工具是什么,或者它到底应该做什么。
设置如下: 我有一个必须在 GAC 中注册的第三方 DLL。这一切在我们之前部署软件的几乎每台机器上都运行良好。但是现在我们有 2 台机器,看起来和我们知道的可以工作的机器完全相同(它们是从同一个镜像中克隆出来的,并且填充了相同的硬件,所以几乎唯一的区别是软件设置,我一遍又一遍地检查它们,它们看起来不错)。
现在的问题是,GAC 中的 DLL 需要很长时间才能加载。至少我相信这是问题所在,我可以明确地说,从该 DLL 实例化单个类是缓慢的部分。一旦加载,事情就会像往常一样飞翔。但是,虽然在已知良好的机器上 DLL 加载速度如此之快,以至于日志中的时间戳甚至都不会改变,但在这 2 台机器上,加载需要 超过 1 分钟。
已知: 我无法访问源代码,因此无法通过 DLL 进行调试。我们的应用程序是唯一使用它的应用程序(因此不应该是同时访问问题)。此 DLL 仅存在一个版本,因此不应该是版本冲突的问题。正在使用 GAC 引用(如果我从 GAC 卸载 DLL,将引发有关缺少 GAC 引用的异常)。
在调试功能方面具有更高技能的人能否建议我可以采取哪些措施来追查此问题的根本原因?
【问题讨论】:
-
呃,听起来是个可怕的问题。期待一个答案。您是否验证过 machine.config 文件是否相同? .DLL 是否进行任何网络调用?
-
@Alex K:这到底是怎么回事?我有一个非常相似的问题。你还记得你的解决方案吗?
-
@ralf.w。抱歉,在调查过程中没有获得深刻的见解。由于时间有限,我们只是最终更换了机器。我的 #1 嫌疑人是反病毒软件,但我无法跟进。您可以尝试禁用它(如果您的 IT 政策允许),看看是否有帮助。
-
@Alex K:谢谢你让我振作起来。我会给 AV 一个机会!
标签: .net performance dll gac dllregistration