2017-02-19 2 views
0

나는 지금 1 주일 동안이 싸움을 해왔다. 몇 가지 추가 배경은 my previous question을 참조하십시오.HttpRequest에서 WPF 클라이언트에서 Web API 컨트롤러로의 청킹을 방지 할 수없는 이유는 무엇입니까?

내 , POSTPUT은 내 웹 API 컨트롤러를 호출합니다. 모든 것은 몇 주 동안 좋았습니다. 그럼 갑자기, 내 PUT 및 POST 전화 chunked오고있다. 나는 그것을 막을 수있는 방법을 찾을 수 없다. 나는 모든 것에 영향을 미치는 하나의 중심적인 변화를 만들었다는 것을 강하게 믿는다. 그러나 그것을 찾기 위해 힘들어한다. 소스 코드를 살펴보고 이전 코드를 복원했으며 작동하지 않습니다.

"request.Headers.TransferEncodingChunked"에 대해 알고 있는데 아무런 효과가 없습니다. 내가 명시 적으로 null 또는 내 클라이언트에서 거짓 설정할 수 있으며 항상 내 루틴 같이 아래에 도착합니다.

내 PUT/POST 컨트롤러 메소드가이 모델을 따릅니다. 내게 맞는 것은 내 수신 객체 ("사용자")가 null로 도착한다는 것입니다. 그러나 요청시 .ReadAsStringAsync()을 수행하면 JSON이 정확하게 기대됩니다. 그러나 나는 비 직관적 인 패턴을 중심으로이 응용 프로그램을 다시 설계하고 싶지 않습니다. 폭파 된 물체는 단지 우연히 도착하여 일할 준비가되어 있어야합니다!

[HttpPut] 
[ResponseType(typeof(User))] 
public IHttpActionResult Put([FromBody] User user) 
{ 
    if (user == null) 
     return Content(HttpStatusCode.BadRequest, "User data is null"); 

    try 
    { 
     ....etc. 
    } 
} 

"사용자"개체는 Entity Framework 개체이므로 눈에 띄지 않습니다. 간단한 문자열, DateTime 및 숫자 속성.

유사하고, 마찬가지로 화나는, 나는 에 request.Headers.AcceptEncoding 설정할 수 있으며 수락 인코딩으로 내 컨트롤러에 도착 : GZIP,을 수축. 같은 문제와 증상을 설명

일부 링크 :

이에

답변

0

명확한 대답,하지만 난 마침내 해결되었다. 그것은 장거리였습니다. 그것이 거기에 도착하는 방법

모르겠지만, 내 .csproj에서 나는이 있었다 :

<Reference Include="System.Net.Http, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> 
    <HintPath>..\packages\System.Net.Http.4.3.0\lib\net46\System.Net.Http.dll</HintPath> 
    <Private>True</Private> 
</Reference> 

보다는이 :

<Reference Include="System.Net.Http" /> 

그리고이 있었다 제의 App.config의를 :

<dependentAssembly> 
    <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
    <bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0" /> 
</dependentAssembly> 
<dependentAssembly> 
    <assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> 
    <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" /> 
</dependentAssembly> 

... 오히려 하지이를 .... 나는이 물건이 필요하지 않았다. 나는 방금 그것을 꺼냈다. 그리고 그것은 모두 다시 일하기 시작했다.

관련 문제