Alp*_*ilo 8 c# performance abcpdf
我有一个命令行进程,使用ABCpdf从HTML文件创建PDF文件.我正在尝试从v5(非常旧,不再支持)升级到v8但是在安装ABCpdf 8并更新我的应用程序以使用新的DLL后,我注意到过去需要不到一秒的转换过程现在需要20多秒.
我在代码中添加了一些跟踪调用,看起来程序试图从ABCpdf 8 DLL引用一个对象的位置是事情暂停很长时间.一旦代码超过该点,它就会以前所未有的速度运行.
我的问题是:在尝试引用第三方库时,什么可能导致CLR放慢速度?我已经验证了ABCpdf 8 DLL在GAC中以及与可执行文件相同的目录.
提前致谢.
我想你可以猜到:
您在没有(传出)Internet连接的服务器上运行此功能.
该组件具有强名称,并使用加密密钥进行签名.正在检查证书(检查撤销列表是否证书仍然有效且可信).由于缺乏互联网连接而超时.
如果要确认这一点,请附加调试器(WinDbg?)并在任何线程上确认以下堆栈跟踪:
0e82c1b4 7c822124 ntdll!KiFastSystemCallRet
0e82c1b8 77e6bad8 ntdll!NtWaitForSingleObject+0xc
0e82c228 73ca64ec kernel32!WaitForSingleObjectEx+0xac
0e82c254 73ca6742 cryptnet!CryptRetrieveObjectByUrlWithTimeout+0x12f
Run Code Online (Sandbox Code Playgroud)
Windows服务器版本的Service Pack版本通过默认启用检查来解决此问题.您可以使用注册表设置禁用它.
请参阅ASP.NET Hang:Authenticode签名程序集:
哦,那个页面没有(明确地)链接到解决方案: