2012-01-25 9 views
0

.NET C#用の素晴らしいハンモックRESTライブラリ(https://github.com/danielcrenna/hammock)を使用していますが、RestClient.BeginRequestに問題が発生しました。このメソッドが初めてコード内で呼び出されると、現在のスレッドが15秒間ブロックされます。私はこのメソッドが非同期操作であるという印象を受けていました。なぜなら、IAsyncResultを返し、コールバックを受け入れるからです。C#ハンモックライブラリRestClient.BeginRequestは現在のスレッドをブロックします

BeginRequestの問題は、デバッグセッションでコードの特定の行がハングアップしていることがわかります。つまり、問題はインターネット接続の問題やRESTリソースとローカルマシン間の待ち時間に関連していません。

私はハンモックのソースコードに潜入することができましたが、かなり混乱しています。以前にこの問題に遭遇しましたか?これはちょうどハンモックのバグですか、それとも予想される動作ですか?私は多くのドキュメントを見つけるのに苦労しています。あなたの助けを前もってありがとう!

答えて

0

エンドポイントはSSL/TLSを使用して接続していますか?そのような場合は、クライアントがSSL証明書の失効リストを確認しようとすると、これらの遅延が発生することがあります。 .NETでは、次のコードを使用して失効モードを変更できます。

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

ハンモックでこれをどのように行うことができるかわかりません。

0

これはDotnet webclient/httprequestのプロパティで、具体的には最初のリクエストでマシンのプロキシ設定をチェックするようです。

私は、あなたが明示的にapp.configでプロキシを設定することで大きなスピードアップを見出すことができることを発見しました。あるいは、手動で別のスレッドで最初にリクエストすることもできます。

関連する問題