微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C# 基于 Windows 的应用程序的 Polly 框架问题

如何解决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 连接后,出现以下错误

Windows App POC for Oracle Connectivity

请注意这一点

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。