Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 应用程序正在断开与Salesforce的连接,是否有任何方法在出现异常时重试?_C#_.net_Exception_Exception Handling - Fatal编程技术网

C# 应用程序正在断开与Salesforce的连接,是否有任何方法在出现异常时重试?

C# 应用程序正在断开与Salesforce的连接,是否有任何方法在出现异常时重试?,c#,.net,exception,exception-handling,C#,.net,Exception,Exception Handling,我编写了一个应用程序,通过API连接到Salesforce.com,查询并更新数据。有时,像下面这样的方法将无法连接并导致整个应用程序停止运行: getMoreResults()中的异常: System.Net.WebException:基础连接已关闭:连接意外关闭。 失败时重试qr=sfservice.queryMore(qr.Locator)执行的最佳方法是什么?理想情况下,在记录失败并停止程序执行之前,我想尝试三次。下面是一些伪代码,尽管我不确定它是否可行。非常感谢您的帮助 public

我编写了一个应用程序,通过API连接到Salesforce.com,查询并更新数据。有时,像下面这样的方法将无法连接并导致整个应用程序停止运行:

getMoreResults()中的异常: System.Net.WebException:基础连接已关闭:连接意外关闭。

失败时重试
qr=sfservice.queryMore(qr.Locator)
执行的最佳方法是什么?理想情况下,在记录失败并停止程序执行之前,我想尝试三次。下面是一些伪代码,尽管我不确定它是否可行。非常感谢您的帮助

public QueryResult getMoreResults(QueryResult qr)
    {

        try
        {
            qr = sfservice.queryMore(qr.queryLocator);
        }
        catch (WebException ex)
        {
            bool success = false;
            //Todo retry this query until it is either successful or has failed three times
            for (int i = 0; i <= 3; i++)
            {
                //somehow set success boolean here

                if(success == false)
                {
                    qr = sfservice.queryMore(qr.queryLocator);
                    //log error and error attempt
                }
                else
                {
                    //exit this method and return to normal flow?
                }
            }
        }
        catch(Exception ex)
        {
            //log the error
            AppSettings.log.Error(ex.Message.ToString());
        }

        return qr;
    }
公共查询结果getMoreResults(查询结果qr)
{
尝试
{
qr=sfservice.queryMore(qr.queryLocator);
}
捕获(WebException ex)
{
布尔成功=假;
//Todo重试此查询,直到查询成功或失败三次
对于(int i=0;i请尝试以下伪代码:

For i as Integer = 1 To 3
    Try
         qr = sfservice.queryMore(qr.queryLocator)
         Exit For
    Catch ex as Exception
    End Try
Next i