营销云 SOAP API 检索请求超时异常

我正在尝试使用 SOAP API 从营销云下载订阅者,并在几次迭代后引发以下异常。

http://img4.mukewang.com/634a517f0001f93a18950461.jpg

它不会一直失败。有时它完成 50 次迭代并失败,有时它在 5 或 10 次迭代后失败。


这是我用来发出检索请求的代码:


public List<Subscriber> GetSubscribers(string RequestId = null)

    {

        string message = string.Empty;

        _lstSubscribers = new List<Subscriber>();

        SoapClient client = new SoapClient();

        client.ClientCredentials.UserName.UserName = _username;

        client.ClientCredentials.UserName.Password = _password;


        RetrieveRequest retrieveRequest = new RetrieveRequest();

        retrieveRequest.ObjectType = "Subscriber";


        string[] props = { "Client.ID", "CreatedDate", "EmailAddress", "EmailTypePreference", "ID", "PartnerKey", "SubscriberKey", "UnsubscribedDate" };

        retrieveRequest.Properties = props;


        retrieveRequest.ClientIDs = new ClientID[] { _clientID };

        //retrieveRequest.QueryAllAccounts = true;

        //retrieveRequest.QueryAllAccountsSpecified = true;


        String requestId = RequestId; 

        String response = string.Empty;

        int tryCount = 0;

        try

        {

            RunRetrieveRequest(client, out requestId, out response, retrieveRequest);

        }

        catch (Exception ex)

        {

            if (response == "MoreDataAvailable")

            {

                tryCount++;

                if (tryCount <= 10)

                {


                }


                retrieveRequest.ContinueRequest = requestId;

                RunRetrieveRequest(client, out requestId, out response, retrieveRequest);

            }

        }

        return _lstSubscribers;

    }


这是配置。我尝试将超时属性从 30 更改为 59,但这没有帮助。



我将不胜感激任何帮助或建议。提前致谢。


慕哥6287543
浏览 110回答 1
1回答

跃然一笑

我已经能够解决此问题并发布答案,因为它可能会帮助其他遇到类似问题的人。Salesforce 营销云 API(SOAP 和 REST)已停止支持默认的 TLS 1.0 协议。因此,在向 API 发送任何请求之前,我需要添加以下代码。System.Net.ServicePointManager.SecurityProtocol&nbsp;=&nbsp;System.Net.SecurityProtocolType.Tls12&nbsp;|&nbsp;System.Net.SecurityProtocolType.Tls11&nbsp;|&nbsp;System.Net.SecurityProtocolType.Tls;以下链接对此有更多解释的见解。WCF 错误“这可能是由于在 HTTPS 情况下未使用 HTTP.SYS 正确配置服务器证书”
打开App,查看更多内容
随时随地看视频慕课网APP