CLR4 中的 generatePublisherEvidence
generatePublisherEvidence in CLR4
我有一个应用程序(不是我的代码)在未连接到互联网的服务器上启动缓慢。
根据之前的经验,我知道配置文件中的 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!
我有一个应用程序(不是我的代码)在未连接到互联网的服务器上启动缓慢。
根据之前的经验,我知道配置文件中的 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!