[原] 在域环境中打开SSMS非常慢 续
FAQ, Why does SSMS take 45s to start up?
终于找到原因了,该描述来自Euan Garden的Blog(FAQ, Why does SSMS take 45s to start up?):
Ok so here is what is happening. SSMS has a high percentage of managed code, all of this code is signed when we ship it. At start up (if this setting is checked) the .Net Runtime tries to contact crl.microsoft.com to ensure that the cert is valid(there were some fake certs issued in Microsoft's name a while back so this is a very valid concern). If there is no internet connection or there is a problem contacting the certificate revocation list server then this will delay SSMS startup.
Now this problem is not unique to SSMS, it actually applies to all managed code and flipping the switch switches off this check for ALL managed code on the machine which may not be a good idea, but at this time I don't know of a way to switch off the check on a per app basis, there are some folks looking however.
There have been several internal discussions on this and some external ones as well.
SSMS 有很大一部分是托管代码,所有托管代码都是经过签名才发布的。当打开SSMS的时候(特指“检查发行商的证书吊销状态”被勾选),.net Runtime 尝试连接到 crl.microsoft.com 确定证书是否有效(有一些伪造的证书是使用 Microsoft 这个名字的,所以这个是一个非常有效的方法)。如果不能连接到 crl.microsoft.com 或者获得证书的吊销列表服务器有问题,这将会延迟SSMS的启动。
这个问题不单只发生在SSMS上,其实所有类似的托管代码都会出现这种问题,如果轻率地将“检查发行商的证书吊销状态”这个选项撤销也不是一个好的做法,但此时此刻,我也想不到更好的解决方案。
关于这个问题已经有很多内部讨论了,同时,外部也有所议论了。
这就是SSMS为什么打开慢的原因了。
下面回复当中有人提出在hosts文件中加入一条:
127.0.0.1 crl.microsoft.com
这个解决方法有点像让《红警3》不升级的解决方案 *_*
Euan Garden 的自我介绍
My Name is Euan Garden, I am currently an Architect on Visual Studio Team System (I was previously the Group Program Manager for Visual Studio Team Edition for Software Testers), prior to this position I worked extensively as a member of the SQL Server Product Team undertaking the following roles; Program Manager for DTS, Product Unit Manager for SQL Tools, Group Program Manager on the SQL Server Strategy and Architecture Team.