我们有一台 2 个四核 Xeon 服务器,配备 8GB RAM,并安装了 Windows Server 2003 Enterprise。我们在其上安装了基于.NET Framework 3.5 的应用程序服务器。服务器采用SQL Server 2005作为数据库服务器。

当我们安装应用服务器时,它曾经具有超快的性能,一切都很好。一旦我们将其加入到我们的域中,它的性能就会急剧下降。例如,之前需要 1 秒才能完成的任务,现在大约需要 30 秒。这非常奇怪,因为只有基于 .NET 的应用程序的性能受到了这种性能影响,但其他应用程序仍然以正常速度运行。

有谁知道为什么会发生这种情况?非常感谢任何帮助或建议。

有帮助吗?

解决方案 2

我确实找到了问题的答案,所以我认为在这里分享可能会很好。当 CLR 尝试加载程序集时,它希望为具有authenticode 签名的程序集生成发布者证据。在我们的例子中,CLR 尝试连接到 clr.microsoft.com,但我们服务器的 Internet 访问被阻止,因此每当应用程序服务器尝试加载新程序集时都会造成巨大的延迟。

以下文章介绍了如何禁用此功能:

绕过启动时的 Authenticode 签名检查

其他提示

不幸的是,更多的可能是需要回答你的问题。有可能的原因很多,为什么这是发生,其中大部分涉及您的代码。

根据您加入域,然后事情开始造成麻烦的症状

,我说你已经得到了很多网络的,你这样做,以前是能够被机器和延迟在本地完成现在实际上是造成麻烦。

但是,这是一个基于信息不足以胡乱猜测。

我建议你分析代码。找出你的大部分时间执行过程中花了,然后张贴代码或它的消毒版本在这里,我们可以帮助你优化它。

我要在这里做一个猜测,并认为你是在谈论一个web应用程序。如果这是正确的,你可能想看看你在Web服务器上安装的应用程序池。你的应用程序可能它开始运行时中弄不清哪个池设置本身。

要检查的另一件事可能是你的数据连接,并确保您要关闭打开过的一切。

在过去的事情,像Randolpho说,你只是真的不得不跟随你的代码执行了某种探查和看到的东西越来越捆绑起来。

祝你好运!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top