c# - 基于 C# Windows 的应用程序的 Polly 框架问题
问题描述
我有一个基于 C# 的基于 Windows 的应用程序并使用 Visual Studio 2017
我正在尝试在应用程序运行时从连接断开的位置执行到 Oracle 数据库和 FTP 的连接。
我使用以下代码在应用程序中的某个位置检查 FTP 和 Oracle 连接
var retryTimes = 100;
var retryableErrorCodes = new[] { "ORA-03113", "ORA-03114", "ORA-12543", "ORA-12170", "ORA-12154" };
RetryPolicy retryPolicyFTP = Policy
.Handle<Xceed.Ftp.FtpInvalidStateException>().Or<Xceed.Ftp.FtpIOException>()
.WaitAndRetry(retryTimes, _ => TimeSpan.FromSeconds(5));
RetryPolicy retryPolicy = Policy
.Handle<OracleException>(ex => retryableErrorCodes.Any(errorCode => ex.Message.Contains(errorCode)))
.WaitAndRetry(retryTimes, _ => TimeSpan.FromSeconds(5));
Policy.Wrap(retryPolicyFTP, retryPolicy).Execute(() =>
{
ExecuteSomeFunction();
});
当我每次尝试断开VPN时,我的意思是此时与Oracle和FTP的连接将丢失并重新连接并破坏应用程序,执行点将仅在
Application.Run(MainForm.Instance);
为什么它没有从它被丢弃的点重新执行。
编辑
我尝试使用 Windows 应用程序进行 POC,在断开 Oracle 连接后,我收到以下错误。
请对此有所了解
解决方案
推荐阅读
- zimbra - zimbra 中所有传入外部电子邮件的警告横幅
- node.js - 使用useState在React中提交后如何清除字段
- asp.net-core - 将 Asp.Net Core 2.2 升级到 3.1 无法验证 HTTPS 连接
- c# - 如何使用来自弹性 REST API 的过滤器打开 Kibana 发现 url
- java - SQLGrammarException:无法执行查询:找不到列?
- scopus - Scopus API 调用以提供层次结构中的机构列表
- php - symfony 4:成功认证后,它重定向到管理区域并使用匿名令牌填充 TokenStorage
- reactjs - 未找到元素
- c# - C# 嵌套 JSON 键名重复
- javascript - 在鼠标点击时立即触发事件,而不是在我放开鼠标之后?