Хорошо, поэтому я понятия не имею, почему это не работает. Я нашел 4 разных учебника/примера для асинхронного вызова веб-службы JSON в Silverlight, и все они используют тот же формат/логику, что и я. В строке «using (streamCommunities = request.EndGetRequestStream (asyncResult))« это бросает ошибку, которую я прикрепляю внизу, ArgumentException, говорящий, что ей не нравится asyncResult. Почему это, если каждый другой пример, который я нашел, использует ту же логику?Silverlight: вызов веб-службы JSON Error
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 и я застрял и разочарование.
-Спасибо заранее RJ
попытайтесь поймать исключение, поместив его в блок try/catch. Это сообщение об ошибке сообщает, что вы не заметили ошибку. Если вы его поймаете, возможно, у вас будет больше информации об этом. –
Но, возможно, у вас есть дополнительная информация об этом. Проблема может быть на стороне сервера. –
Это говорит мне об ошибке, которую я опубликовал ... e.Message = Значение не входит в ожидаемый диапазон. Это не решает проблему. –