Como corrigir System.ArgumentException no HttpWebResponse?

Estou enfrentando essa exceção ao receberHttpWebResponse para o meuWindowsPhone aplicativo. Como eu devo consertar isso? Isso acontece com muita frequência, mas preciso garantir que meu aplicativo não trave se isso acontecer. Por favor, dê uma olhada noscreenshot.

Minha resposta esperada é

       Headers:-
       HTTP/1.1 500 Internal Server Error
       Date: Wed, 28 Nov 2012 06:41:24 GMT
       Content-Type: application/json
       Transfer-Encoding: chunked
       Connection: keep-alive
       Keep-Alive: timeout=30
       Set-Cookie: ...........; path=/
       Expires: Thu, 19 Nov 1981 08:52:00 GMT
       Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
       Pragma: no-cache
       Internal Server Error: 

       Json:-
       {"status":0,"error_code":1001,"data":{"msg":"Something went wrong. Please try again later. [error code 1001]"}}

Também mostra noInnerException a mensagem comoSpecified value has invalid HTTP Header characters. Parameter name: name

Por favor ajude. Não sei por que o webRequest.EndGetResponse (asynchronousResult) não consegue ler a resposta. Existe uma alternativa?

ATUALIZAR para iniciar o pedido:

_webRequest.BeginGetRequestStream(new AsyncCallback(GetReqeustStreamCallback), _webRequest);

private void GetReqeustStreamCallback(IAsyncResult asynchronousResult)
    {
        if ((!ReqIdEnabled || Network.RequestUniqueId == this.RequestUniqueId))
        {
            HttpWebRequest webRequest = (HttpWebRequest)asynchronousResult.AsyncState;

            // End the stream request operation

            using (Stream postStream = webRequest.EndGetRequestStream(asynchronousResult))
            {

                // Add the post data to the web request
                postStream.Write(_postDataInBytes, 0, _postDataInBytes.Length);

                //postStream.Dispose();
            }

            // Start the web request
            webRequest.BeginGetResponse(new AsyncCallback(GetResponseCallback), webRequest);
        }
    }

    private void GetResponseCallback(IAsyncResult asynchronousResult)
    {
        HttpWebRequest webRequest = (HttpWebRequest)asynchronousResult.AsyncState;
            try
            {
     //**throws Exception here when my server returns 503/500 and is not caught by the catch block below**
                using (HttpWebResponse response = (HttpWebResponse)webRequest.EndGetResponse(asynchronousResult))  
                {
                    ReadResponse(response);
                }
            }
            catch (WebException ee)
            {
            }
    }

questionAnswers(1)

yourAnswerToTheQuestion