2012-04-10 5 views
0

同様の質問にbeenaskedbeforeがあることを認識していますが、提供される解決策はありません。しかし、私が渡している、Windows PhoneでHttpWebRequest.BeginGetResponseがSystem.NotSupportedExceptionになる

'token.AsyncWaitHandle' threw an exception of type 'System.NotSupportedException'

Thisページでは、この例外がコールバックパラメータがNothingであることを意味していることを私に伝えます:

私は次の例外がスローされることがわかりBeginGetResponseメソッドから返されたトークンを調べますブレークポイントを挿入すると、コールバック - とデバッガがコールバックメソッドに分割されます。ただし、コールバック内のrequestオブジェクトは常にnullです。私はコールバックメソッドのresultオブジェクトで同じ例外の詳細を見ることができます。

BeginGetResponse

を呼び出すときに、私はnew AsyncCallback(ProcessResponse)を使用してみました私は、私はどちらかの運と、エミュレータ内およびオンデバイスこれを試してみたrequest.AllowReadStreamBuffering = true;

を追加しようとしました。

public static void GetQuakes(int numDays) 
{ 
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://magma.geonet.org.nz/services/quake/geojson/quake?numberDays=" + numDays); 
    // Examining this token reveals the exception. 
    var token = request.BeginGetResponse(ProcessResponse, request); 
} 

static void ProcessResponse(IAsyncResult result) 
{ 
    HttpWebRequest request = result.AsyncState as HttpWebRequest; 
    if (request != null) 
    { 
     // do stuff... 
    } 
} 

私は次にどこを見なければならないのか分かりません。

+0

奇妙なことに、今朝働いていなかったのは、今帰ってきたときです。 'if(request!= null)'ステートメントは、常にfalseと評価されました - 今晩編集されていない全く同じコードが実行され、trueと評価されます。 –

+0

私はこのエラーに直面していますが、私はそれを修正する方法がわかりません –

答えて

1

「token.AsyncWaitHandle」は、この例外がコールバックパラメータは 何も

あなたがしているドキュメントであることを意味していること 「System.NotSupportedException」

このページでは私に語ったタイプの例外を投げましたhttp://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.begingetresponse%28v=vs.95%29.aspxを見るとBeginGetResponseです。 SilverlightはAsyncWaitHandleを使用せず、正しくNotSupportedExceptionをスローします。例外System.NotSupportedExceptionが表示されているのは、tokenを検査するときに作成しているIAsyncResult.AsyncWaitHandleの呼び出しです。

IAsyncResult.AsyncWaitHandleに関するドキュメントでは、待機ハンドルhttp://msdn.microsoft.com/en-us/library/system.iasyncresult.asyncwaithandle(v=vs.95).aspxを作成するかどうかは、IAsyncResultの実装によって決まります。これについて心配しておけば、間違った道をお送りします。

私は考えますあなたは実際の問題をdescibeする必要がありますあなたが見ている。あなたが調査したことを知ることは素晴らしいことですが、この場合は問題を解決するのに役立ちます。

ifステートメントでコードをテストするときに、コードが機能し、ProcessResponse要求でnullにしないでください。私はあなたが提供したコードをWindowsの電話アプリケーションにコピーして、問題なく走らせました。

+0

私の問題は、 'do stuff'の部分には決して行きません - コールバックでは、リクエストは常にnullです。 編集:ああ、あなたが指摘したようにドキュメントをさらに読んだら、トークンを検査する際にそのエラーが予想されることがわかります。私はちょうど問題としてそれに飛び乗ったと思う。とにかく、ifステートメントはtrueに評価されることはありません。 –

+0

私は仕事から家に帰ったばかりで、コードはうまくいくように見えます。多分、8時前に開発作業をするのはあまりいい考えではありません。 –

+0

私はそれがうまく動作します。デバッグ時にウサギを穴の中で追いかけるのがどれほど簡単かを示します。 – btlog

関連する問題