Я пытаюсь позвонить из приложения Silverlight в службу WCF, возвращая JSON.Это просто возвращает целое число.Я использовал Fiddler, чтобы убедиться, что он никогда не звонит моему веб-сервису.Я получаю сообщение об ошибке «Операция недопустима из-за текущего состояния объекта».Это происходит в строке, HttpWebResponse response = (HttpWebResponse) _webRequest.EndGetResponse (result);Stacktrace может быть предоставлена при необходимости.
public MainPage()
{
InitializeComponent();
StartWebRequest();
}
void StartWebRequest()
{
HttpWebRequest _webRequest = (HttpWebRequest)WebRequest.Create(new Uri("http://www.example.com/MyJSON.svc/onlineusercount"));
_webRequest.ContentType = "text/json";
_webRequest.Method = "GET";
_webRequest.BeginGetResponse(FinishWebRequest, _webRequest);
}
void FinishWebRequest(IAsyncResult result)
{
HttpWebRequest _webRequest = (HttpWebRequest)result.AsyncState;
HttpWebResponse response = (HttpWebResponse)_webRequest.EndGetResponse(result);
Stream streamResponse = response.GetResponseStream();
StreamReader streamRead = new StreamReader(streamResponse);
string responseString = streamRead.ReadToEnd();
needle.Value = Convert.ToInt32(responseString);
// Close the stream object
streamResponse.Close();
streamRead.Close();
// Release the HttpWebResponse
response.Close();
}
}
ОБНОВЛЕНИЕ: Я прокомментировал строку выше, которая говорит
_webRequest.ContentType = "text/json";
Моя новая ошибка говорит: SecurityException не обработанокод пользователя.Я считаю, что это означает, что я должен использовать попытку catch, но я не уверен, какой тип исключения нужно перехватить.
Мой след стека выглядит следующим образом:
at System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state)
at System.Net.Browser.BrowserHttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
at FuelizerGuage.MainPage.FinishWebRequest(IAsyncResult result)
at System.Net.Browser.BrowserHttpWebRequest.<>c__DisplayClassd.<InvokeGetResponseCallback>b__b(Object state2)
at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
Также согласно Fiddler,мое приложение silverlight теперь обращается к моему домену веб-службы в поисках clientaccesspolicy.xml, а затем ищет файл crossdomain.xml, ни один из которых не существует.