我的问题是这样的:如何阻止我的.NET 1.1应用程序试图在无法访问Internet的环境中验证数字签名?如何禁用验证.NET 1.1程序集的Authenticode签名?
我的问题的背景: 我有一个产品安装在基于.NET 1.1 SP1的客户上。客户网站无法访问互联网。这会导致应用程序启动延迟,在某些情况下会导致我的Windows服务因超时而无法启动。
启动时的延迟似乎是由应用程序试图验证数字签名引起的。这在其他文章中已有详细记录,正常答案是在app.config文件中包含generatePublisherEvidence = false,如此处所述http://support.microsoft.com/kb/936707
似乎使用generatePublisherEvidence = false对.NET 1.1应用程序没有任何影响,这似乎与MSDN一致(http://msdn.microsoft.com/en-us/library/0kk0kk35(VS.71).aspx没有提及该元素)以及我上面提到的修补程序,它是为了.NET 2.0应用程序。
我向客户发布的下一个版本将构建在.NET 3.5 SP1上,并且在该版本的.NET框架中使用generatePublisherEvidence时没有问题,但是我目前无法简单地将客户更改为该版本 - 我被卡住了与.NET 1.1 SP1 - 所以我正在寻找一个答案,而不是简单地使用.NET框架的更高版本。
不幸的是,我们无法找到我们产品的解决方案,并最终从.NET程序集中删除了authenticode签名。我们只使用强烈的声音。这对我们来说更简单,因为我们开发组件库,而不是最终用户应用程序。 – 2010-11-30 15:40:48
我刚刚发现这是通过更改Internet Explorer中的设置来禁用CRL检查。我将尝试下一步 - 将返回结果: 1.打开Internet Explorer 2.转到工具 - > Internet选项... 3.转到高级选项卡 4.找到安全部分并取消选中检查发布者的证书吊销选项。 – 2010-11-30 16:25:06