SilverlightアプリケーションからJSONを返すWCFサービスを呼び出そうとしています。単に整数を返すだけです。私はそれが私のwebserviceへの呼び出しをしていないことを確認するためにフィドラーを使用しています。 「オブジェクトの現在の状態によって操作が有効ではありません」というエラーが表示されます。 HttpWebResponseのレスポンス=(HttpWebResponse)_webRequest.EndGetResponse(result);という行に表示されます。必要に応じてスタックトレースを提供することができます。HttpWebRequestを使用してSilverlightアプリケーションからWCFを呼び出すときにエラーが発生する
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();
}
}
UPDATE:ユーザーコードによってSecurityExceptionがが未処理:私はその上の行をコメントアウトしているが
_webRequest.ContentType = "text/json";
私の新しいエラーが言う言いますこれはtry 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()
またフィドラーによると、私のSilverlightアプリケーションは現在、clientaccesspolicy.xmlを探している私のWebサービスのドメインへの呼び出しで作って、その後のcrossdomain.xmlを探します存在する。
私はContentTypeを設定する行をコメントアウトしましたが、今は別のエラーが発生します。これは、エラーのStackTraceの先頭です。System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod、Object state) at System.Net.Browser.BrowserHttpWebRequest.EndGetResponse(IAsyncResult asyncResult) – puddinman13
また、リクエストはまだありません私のwebserviceに送信されます。フィドラーは依然として電話の兆候を見せていない。新しいエラーは、HttpWebResponseレスポンス=(HttpWebResponse)_webRequest.EndGetReponse(result)で発生します。ライン。あなたの返信ありがとう! – puddinman13
エラーは何ですか? – carlosfigueira