我们使用第三方库来操作 Pdf。我们的应用程序作为 Windows 服务运行,每月处理数千个文件。偶尔有人上传格式错误的 Pdf,这会使库失控并最终抛出 StackOverflowException。
库制造商在过去的两年里都没有修复这个错误,我们不能在有人愿意的时候让我们的生产崩溃。
自动重新启动服务似乎不是一个选项,因为应用程序随后会重试格式错误的文件。由于我们并行处理许多文件,因此在启动时我们无法知道哪个文件格式错误。
由于 stackoverflow 默认情况下无法缓存,我想知道是否可以调整服务的 CLR 来捕获异常。
您可以重新构建应用程序以创建新的子进程,每个子进程都有自己的库实例来执行工作。
最重要的是,通过这种方法,失败的实例不会导致整个应用程序崩溃或导致其他子进程崩溃。您还有一个优势,管理器进程可以跟踪哪些文件正在处理(以及在哪个进程上),以便它知道哪些文件在失败后不重试。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)