gpt4 book ai didi

c# - 在 Windows 上禁用应用程序的证书吊销检查

转载 作者:IT王子 更新时间:2023-10-29 04:39:33 24 4
gpt4 key购买 nike

我有一个 .NET 3.5 桌面应用程序,每当它所在的测试机器不在办公室时,它的功能就会周期性地变慢。
我设法在没有互联网连接的情况下在办公室的一台机器上复制错误,但只有当我使用 ANTS 性能分析器时,我才能更清楚地了解发生了什么。

在 ANTS 中,我看到“等待同步”长达 16 秒,这与我在 NHibernate 尝试加载 System.Data.SqlServerCE.dll 程序集时在应用程序中看到的延迟相对应。
如果我立即再次尝试该操作,它会立即运行,但如果我将其保留 5 分钟,那么下次我尝试时再次加载会很慢。

根据我目前的研究,这似乎是因为 SqlServerCE dll 已签名,因此系统正在尝试连接以获取证书吊销列表并超时。
禁用 Internet 选项 LAN 设置中的“自动检测设置”设置可以解决问题,禁用“检查发布者证书吊销”也是如此。
但是将部署此应用程序的管理员不会对在每台机器或每个用户的基础上禁用证书检查的想法感到满意,因此我真的需要让 CRL 检查的应用程序级别禁用工作。

.net 2.0 中有一个记录良好的错误,它描述了这种行为,并提供了一个可能的配置文件元素修复。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<generatePublisherEvidence enabled="false"/>
</runtime>
</configuration>

尽管我使用的是 .net 3.5,但它对我有用。
SQLServerCE dll 正在由 NHibernate 动态加载,我想知道它是动态的这一事实是否可能是设置不起作用的原因,但我不知道如何检查。

任何人都可以就为什么配置设置可能不起作用提供建议吗?
或者有没有其他方法可以在应用程序级别禁用检查,也许是 CAS 策略设置,我可以使用它在安装应用程序时为应用程序设置异常?
或者我可以在应用程序中更改某些内容以提高信任级别或类似的内容吗?

最佳答案

如果要检查每个应用程序的撤销列表,您可以在代码中指定:

ServicePointManager.CheckCertificateRevocationList = false;

关于c# - 在 Windows 上禁用应用程序的证书吊销检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19766914/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com