Mik*_*ost 12 .net c# signed-assembly
我本周遇到一个奇怪的问题我无法解释:我将我的应用程序切换为使用某些第三方程序集(Xceed Grid和其他一些组件)的签名版本,并且应用程序启动时间进入了厕所.每次应用程序加载已签名的程序集时,都需要30秒才能加载.应用程序启动从5秒到超过90秒.这到底是怎么回事?!
其他一些信息:
Mar*_*nKB 17
杰森埃文斯的帖子确实包含答案,但是以链接的形式.我认为在这里发布实际的解决方案会很好:
在与可执行文件相同的文件夹中创建文件Appname.exe.config(其中Appname是可执行文件的名称;对于开发,这将位于调试输出文件夹中).这显示了一个xml文件,假定您在主配置文件中没有其他条目; 如果你已经有了这个文件,我假设你只需要根据需要添加新的部分/文本:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<generatePublisherEvidence enabled="false" />
</runtime>
</configuration>
Run Code Online (Sandbox Code Playgroud)
Jas*_*ans 15
看看这些链接:
他们可能会帮忙.可能是系统上的配置意味着.NET框架正在进行大量额外的工作来验证程序集.如果是这种情况,那么您可以将其配置为不那么挑剔.
以防万一其他人看到这篇文章,我已经进一步追踪了这个问题,因为我只是想弄清楚并找到了这个页面。
如果您计算机上的现有 CRL 已超时,并且尚未使用新 CRL 进行更新,则每次运行流程时都会检查 CRL。您可以通过点击http://crl.microsoft.com/pki/crl/products/CodeSignPCA.crl 上的 CRL并检查到期日期来测试这一点。现在在 IE 中配置一个不起作用的代理。将您的机器日期设置为超过到期日期并重新测试您的应用程序。
如果您的 NIC 被禁用,则不会检查 CRL。
如果您的 NIC 没有网关,则不会检查 CRL。
如果您启用了代理和网关,则会检查 CRL,如果代理出现问题,您将遇到此超时。
如果您成功连接到 Internet,则 CRL 会更新,您暂时会没事。
我的应用程序在 .NET 2.0 中使用了一些较旧的 Xceed 组件,并且一直在工作,所以需要一段时间才能弄清楚发生了什么。