RestSharp POST не возвращает ничего из среды Azure, но делает это локально - PullRequest
0 голосов
/ 27 февраля 2020

Я совершал этот тип вызовов десятки раз, но по какой-то причине это не работает в моей тестовой среде в Azure, но работает на моем локальном хосте просто отлично. Результат никогда не возвращается из моего сервиса, даже ошибка тайм-аута или ответ «0», ничего. Что я мог упустить при вызове конечной точки API? В моих логах тоже нет ошибок.

Единственный способ получить ответ - если я удаляю Тайм-аут = 2700000, который в этом случае возвращает ответ "0". Но мой вызов занимает больше нескольких минут, поэтому без установленного тайм-аута он всегда будет возвращать ответ «0».

ОБНОВЛЕНИЕ: Я также пытался использовать вызовы await / asyn c, но тоже не повезло. ОБНОВЛЕНИЕ: я переключился с Restsharp и использовал вместо этого вызов Httpclient, и все еще те же результаты. Так что я даже не думаю, что это острая проблема в одиночку.

            var appSettings = ConfigurationManager.AppSettings;

            var restClient = new RestClient(appSettings["Url"]);

            var request = new RestRequest("api/Sync")
            {
                Method = Method.POST,
                Timeout = 2700000,
                RequestFormat = DataFormat.Json
            };
            request.AddHeader("authUser", appSettings["username"]);
            request.AddHeader("authPass", appSettings["password"]);
            request.AddHeader("Content-Type", "application/json");

            var body = JsonConvert.SerializeObject(deserializeItem);
            request.AddParameter("application/json; charset=utf-8", body, ParameterType.RequestBody);

            var result = restClient.Execute(request);

            var response = JsonConvert.DeserializeObject<ResultObj>(result.Content);

1 Ответ

0 голосов
/ 02 марта 2020

Итак, чтобы решить эту проблему, мне пришлось поставить: System. Net .ServicePointManager.SetTcpKeepAlive (true, 180000, 60000);

Соединение между моей веб-работой и службой истекло из-за простоя бездействия.

...