HttpWebRequest.EndGetResponse вызывает исключение NotSupportedException в Windows Телефон 7

в проект Silverlight-Windows Phone 7. Я создаю HttpWebRequest, получаю RequestStream, записываю что-то в Stream и пытаюсь получить ответ, но всегда получаю NotSupportedException: «System.Net.Browser.OHWRAsyncResult.AsyncWaitHandle выдал исключение типа 'System.NotSupportedException'

Мой производственный код намного сложнее, но я могу сузить его до этого небольшого фрагмента кода:

public class HttpUploadHelper
{
    private HttpWebRequest request;
    private RequestState state = new RequestState();

    public HttpUploadHelper(string url)
    {
        this.request = WebRequest.Create(url) as HttpWebRequest;
        state.Request = request;
    }

    public void Execute()
    {
        request.Method = "POST";
        this.request.BeginGetRequestStream(
            new AsyncCallback(BeginRequest), state);
    }

    private void BeginRequest(IAsyncResult ar)
    {
        Stream stream = state.Request.EndGetRequestStream(ar);
        state.Request.BeginGetResponse(
            new AsyncCallback(BeginResponse), state);
    }

    private void BeginResponse(IAsyncResult ar)
    {
        // BOOM: NotSupportedException was unhandled; 
        // {System.Net.Browser.OHWRAsyncResult}
        // AsyncWaitHandle = 'ar.AsyncWaitHandle' threw an 
        // exception of type 'System.NotSupportedException'
        HttpWebResponse response = state.Request.EndGetResponse(ar) as HttpWebResponse;
        Debug.WriteLine(response.StatusCode);
    }
}

public class RequestState
{
    public WebRequest Request;
}

}

Кто-нибудь знает, что не так с этим кодом?

9
задан bkaid 20 December 2011 в 22:35
поделиться