OK、なぜこれが機能しないのかわかりません。私は、Silverlight内でJSON Webサービスを非同期に呼び出す4つのチュートリアル/サンプルを見つけましたが、それらのすべては同じフォーマット/ロジックを使用しています。 "using(streamCommunities = request.EndGetRequestStream(asyncResult))"という行では、一番下にアタッチしたエラー、つまりasyncResultが気に入らないというArgumentExceptionがスローされています。他のすべての例で同じロジックが使用されている場合、これはなぜですか?Silverlight:WebサービスコールJSONエラー
private void GetSource(object state)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(MyValidUri));
request.Method = "POST";
request.ContentType = "application/json";
request.BeginGetResponse(new AsyncCallback(ReadCommunityCallBack), request);
}
private void ReadCommunityCallBack(IAsyncResult asyncResult)
{
HttpWebRequest request = (HttpWebRequest)asyncResult.AsyncState;
using (Stream outStream = request.EndGetRequestStream(asyncResult))
{
// DO STUFF HERE
}
}
とエラーはここにある:
System.ArgumentException was unhandled by user code
Message=Value does not fall within the expected range.
StackTrace:
at System.Net.Browser.ClientHttpWebRequest.EndGetRequestStream(IAsyncResult asyncResult)
at cenTabbedFeed.MainPage.ReadCommunityCallBack(IAsyncResult asyncResult)
at System.Net.Browser.ClientHttpWebRequest.<>c__DisplayClass1a.<InvokeGetResponseCallback>b__18(Object state2)
at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
私は例を精練し、MSDNの答えを見つけようと、私は立ち往生してイライラしていてきた、言ったように。
-Thanksは、事前に RJ
try/catchブロックに配置することで例外をキャッチしようとします。そのエラーメッセージは、エラーをキャッチしていないことを示します。あなたがそれをキャッチするなら、多分あなたはそれについてもっと多くの情報を持っています。 –
しかし多分あなたはそれについてもっと多くの情報を持っています。問題はサーバー側で発生する可能性があります。 –
これは私が投稿したエラーを教えてくれる... e.Message =値が予想される範囲内に収まらない。それはエラーを解決しません。 –