Silverlight 4 HttpWebRequest бросок ProtocolViolationException - PullRequest
2 голосов
/ 25 июля 2010

Я вызываю службу REST через http, которая возвращает поток в качестве ответа.Мой клиентский код выглядит так:

                Uri uri = new Uri(remoteAddress);
                var webRequest = (HttpWebRequest)WebRequest.Create(uri);
                webRequest.Method = "GET";
                webRequest.ContentType = "multipart/mixed";
                webRequest.BeginGetResponse(responseResult =>
                {
                    HttpWebResponse response = (HttpWebResponse)webRequest.EndGetResponse(responseResult);
                    this.messages = ParseResponse(response);
                    Complete(false);
                }, null);

В этой строке я получаю следующую ошибку:

 HttpWebResponse response = (HttpWebResponse)webRequest.EndGetResponse(responseResult);

Исключение System.Net.ProtocolViolationException не обработано кодом пользователя Сообщение = Операция выполненанедействительно из-за текущего состояния объекта.StackTrace: в System.Net.Browser.AsyncHelper.BeginOnUI (SendOrPostCallback beginMethod, состояние объекта) в System.Net.Browser.BrowserHttpWebRequest.EndGetResponse (IAsyncResult asyncResult) в качестве ответа на запрос LaharSub.System.Net.Browser.BrowserHttpWebRequest. <> C__DisplayClassd.b__b (состояние объекта 2) в System.Threading.QueueUserWorkItemCallback.WaitCallback_Context (состояние объекта) в System.Threading.ExecutionContext.Run, вызов объектаgnackback для объектав System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem () в System.Threading.ThreadPoolWorkQueue.Dispatch () в System.Threading._ThreadPoolWaitCallback.Wall * 100поскольку исключение не указывает ни на что полезное.Я включил функцию потоковой передачи в fiddler, но я не вижу трафика / ошибок.

Пожалуйста, помогите!

Ответы [ 2 ]

1 голос
/ 25 июля 2010

Ну что ты знаешь, проблема в этой строке:

webRequest.ContentType = "multipart/mixed";

Похоже, это ошибка / нюанс SL. Я прокомментировал эту строку, и ошибка исчезла! Я также должен добавить, что код как есть, прекрасно работает в традиционном приложении для консоли / Windows.

Этот пост указал мне верное направление. Спасибо Microsoft !!!!!!

0 голосов
/ 23 августа 2010

Установка свойства ContentType подразумевает, что вы собираетесь предоставить тело сообщения с вашим запросом.Казалось бы, библиотеки .net не хотят этого делать, хотя я не могу найти ничего в спецификации HTTP, чтобы предположить, что это должно быть запрещено.

...