2010-07-25 2 views
2

응답을 스트림으로 반환하는 HTTP를 통해 REST 서비스를 호출하고 있습니다. 나는이 줄에 다음과 같은 오류를 받고 있어요Silverlight 4 HttpWebRequest throw ProtocolViolationException

   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는 사용자 코드에 의해 처리되지 않은했다 개체의 현재 상태로 인해 스택 트레이스 : System.Net.Browser.AsyncHelper.BeginOnUI에서 (SendOrPostCallback beginMethod, 개체 상태) System.Net.Browser.BrowserHttpWebRequest.EndGetResponse (IAsyncResult를 asyncResult) 에서 LaharSubProxy.SubscribeAsyncResult`1에서. <> c__DisplayClass1.b__0 (IAsyncResult responseResult) at System.Net.Browser.BrowserHttpWebRequest. <> c__DisplayClassd.b__b (객체 상태 2) 하여 System.Threading에서 System.Threading.ExecutionContext.Run에서 System.Threading.QueueUserWorkItemCallback.WaitCallback_Context (객체 상태) (ExecutionContext에 ExecutionContext에, ContextCallback 콜백, 부울 ignoreSyncCtx를 상태 객체)에 . System.Threading._ThreadPoolWaitCallback.PerformWaitCallback에서 System.Threading.ThreadPoolWorkQueue.Dispatch() 에서 QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() () 의 InnerException : 예외이기 때문에 이것은 나를 절대적으로 견과류 운전

유용하지 않은 것을 가리키고 있지 않습니다. 피들러에서 "스트리밍"옵션을 활성화했지만 트래픽/오류가 표시되지 않습니다.

도와주세요! 이것은 SL 버그/뉘앙스처럼

webRequest.ContentType = "multipart/mixed"; 

이 보인다 : 잘 알고 whatdya

답변

1

는, 문제는이 라인입니다. 그 줄을 주석 처리하고 오류가 사라집니다! 기존 콘솔/Windows 응용 프로그램에서 잘 작동하는 코드도 추가해야합니다.

This post 올바른 방향을 알려 주셨습니다. Microsoft에 감사드립니다 !!!!!!

0

ContentType 속성을 설정하면 메시지 본문에 요청을 제공 할 것입니다. .net 라이브러리가 이것을 허용하고 싶지는 않지만 HTTP 사양에서 아무것도 찾을 수 없다는 것을 알 수는 없지만 그렇게하지 않는 것이 좋습니다.