WinHttpSendRequest: 2148074273 недостаточно кеша

Я создаю клиент Rest с помощью cpprest-sdk для связи с веб-сервисом. Проблема в том, что время от времени после отправки нескольких успешных запросов (около 50) я получаю исключение:

WinHttpSendRequest: 2148074273 недостаточно кеша в функции

Или иногда:

ERROR_WINHTTP_SECURE_FAILURE (12175)

Я пытался искать параметры кэширования в cpprest-sdk, но ничего не нашел. Поскольку исключения происходят внутри cpprest-sdk, когда я звоню .wait() в моей задаче я не уверен, могу ли я использовать WINHTTP_STATUS_CALLBACK, чтобы проверить более подробную информацию об этой ошибке. Как я могу исследовать глубже, чтобы найти причину этой ошибки?

Вот мой запрос на отдых:

void MyRestClient::PostKeys(const std::string & sKek, const std::string & sKid, const std::string & sCustomerAuthenticator) {
uri_builder oBuilder(U("/keys?customerAuthenticator=") + to_string_t(sCustomerAuthenticator));
oBuilder.append_query(KEK, to_string_t(sKek));
json::value oBody;
oBody[KID] = json::value::string(to_string_t(sKid));

web::http::http_request oRequest;
oRequest.set_method(methods::POST);
oRequest.set_request_uri(oBuilder.to_uri());
oRequest.set_body(oBody);

m_oCurrentTask = oClient.request(oRequest).then([this](http_response oResponse) {
OnPostResponse(oResponse);
});
}

В соответствии с https://msdn.microsoft.com/en-us/library/windows/desktop/aa383928(v=vs.85).aspx (4-й пункт). Запросы на отправку не должны кэшироваться, поэтому я не понимаю, почему я получаю первое исключение. Я также попытался отключить кэширование Https, как показано в 6-й ссылке в ссылке, но это ничего не изменило.

Кто-нибудь испытывал нечто подобное или имел какое-то понимание того, что может происходить? Или это нормальное поведение, и я должен просто повторить запрос, когда произойдут эти исключения?

1

Решение

Использует ли ваша веб-служба протокол TLS с обменом ключами Диффи-Хеллмана? Если да, вы, вероятно, видите ошибку в SChannel, который является реализацией SSL для Windows, см. здесь для подтверждения. К сожалению, единственное доступное исправление — это обновление версии Windows, на которой работает ваш клиент, до последней сборки Windows 10.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]