.net – CLR4中的generatePublisherEvidence

我有一个应用程序(不是我的代码),它在没有连接到互联网的服务器上慢慢启动.

从早期的经验我知道配置文件中的generatePublisherEvidence并在此处尝试(在过程监视器中检测到一些带有超时的TCP连接后).

但是,在这种情况下,应用程序是.Net 4.5.1和generatePublisherEvidence的文档页面说

In the .NET Framework 4 and later, this element has no effect on assembly load time

对我来说,加载时间减少了,TCP连接从日志中消失了.

首先我认为这是巧合,但现在我已在其他2台服务器上验证了相同的行为.

有谁能解释一下?

我试图按照msdn页面中的链接,但找不到有关如何验证汇编证书以及CLR2和CLR4之间的差异的任何信息.

我能想到的唯一猜测是应用程序加载了一些旧的CLR2程序集,这些程序集受generatePublisherEveidence的影响.

最佳答案 看看我的
answer here是否澄清了一些事情.

The generatePublisherEvidence element is definetely still relevant for .NET 4, even 4.7 which I was using! It is just no longer the case that without it the signature is always verified by the runtime as part of the assembly loading process, but the signature verification might still be triggered (unintentionally) at some point!

点赞