2010-11-30 36 views
1

我的问题是这样的:如何阻止我的.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框架的更高版本。

+0

不幸的是,我们无法找到我们产品的解决方案,并最终从.NET程序集中删除了authenticode签名。我们只使用强烈的声音。这对我们来说更简单,因为我们开发组件库,而不是最终用户应用程序。 – 2010-11-30 15:40:48

+0

我刚刚发现这是通过更改Internet Explorer中的设置来禁用CRL检查。我将尝试下一步 - 将返回结果: 1.打开Internet Explorer 2.转到工具 - > Internet选项... 3.转到高级选项卡 4.找到安全部分并取消选中检查发布者的证书吊销选项。 – 2010-11-30 16:25:06

回答

1

我刚刚为供应商提供的应用程序今天解决了这个问题。我假设他们的应用程序是用.net编写的,但我没有确认。由于子网没有Internet访问权限,因此我从具有静态地址的本地计算机上的TCP/IP设置中删除了DNS服务器条目。对于DHCP提供的地址,我从DHCP范围中删除了DNS服务器选项(006)。

相关问题