C # Hammock библиотека RestClient.BeginRequest блокирует текущий поток - PullRequest
0 голосов
/ 25 января 2012

Я использую потрясающую библиотеку Hammock REST (https://github.com/danielcrenna/hammock) для .NET C #, и я столкнулся с проблемой с RestClient.BeginRequest. При первом вызове этого метода в моем коде он блокирует текущий поток дляхорошие 15 секунд. У меня сложилось впечатление, что этот метод является асинхронной операцией, потому что он возвращает IAsyncResult и принимает обратный вызов - он должен немедленно вернуться, верно?

Я знаю, что проблема в BeginRequest, потому что сеанс отладкипокажет, что он висит на этой конкретной строке кода - другими словами, проблема не связана с проблемами подключения к Интернету или задержкой между ресурсом REST и моей локальной машиной.

Я мог бы погрузиться в исходный код дляГамак, но там довольно запутанно - кто-нибудь сталкивался с этой проблемой раньше? Это просто ошибка в Гамаке или это ожидаемое поведение? Мне трудно найти много документации. Заранее спасибо за вашу помощь!

Ответы [ 2 ]

0 голосов
/ 02 февраля 2012

Я думаю, что это свойство Dotnet webclient / httprequest, в частности, оно производит проверку настроек прокси-сервера на первом запросе.

Я обнаружил, что вы можете получить большойускоритесь, явно настроив прокси в app.config.В качестве альтернативы вы могли бы сделать свой первый запрос в другой ветке вручную, я думаю.

0 голосов
/ 26 января 2012

Является ли ваша конечная точка, к которой вы подключаетесь, используя SSL / TLS?Если это так, иногда эти задержки могут быть вызваны тем, что клиент пытается проверить список отзыва SSL-сертификата.В .NET вы можете изменить режим отзыва, используя следующий код.

client.ClientCredentials.ServiceCertificate.Authentication.RevocationMode = X509RevocationMode.NoCheck;

Я не уверен, как вы могли бы сделать это в гамаке.

...