타사 도구의 요청을 처리하기 위해 asp.net .asmx webservice를 작성했습니다. 타사 도구는 사용자 정보를 얻기 위해 웹 서비스에 http POST 요청을합니다. IIS7을 사용하고 있습니다.asp.net webservice handling gzip 압축 요청
"모든 인코딩 제거"가 선택된 피들러를 실행하면 웹 서비스 호출 및 모든 기능이 제대로 작동하는 것을 볼 수 있습니다. "Remove All Encodings"의 선택을 취소하면 400 잘못된 요청으로 webservice 호출이 실패합니다. 내가보기에 차이점은 헤더 "Content-Encoding : gzip"이 Fiddler에 의해 제거되고 내용이 압축 해제된다는 것입니다.
따라서 Content-Encoding 헤더가 제거되고 콘텐츠가 압축 해제되면 내 웹 서비스가 완벽하게 작동합니다. 헤더가 존재하고 컨텐츠가 압축되면 웹 서비스가 실패합니다.
어떻게 I 중 하나를
- 는 압축 요청을 수락 (그리고 타사 도구가 존중되기를 바랍니다)
- 압축 해제 컨텐츠 초기에하지 않을 것을 클라이언트에게 내 웹 서비스 구성 asp.net
- 가 압축 된 데이터
업데이트와 함께 작동하도록 내 웹 서비스를 수정 처리 : 명확하게하기 위해, 내가 필요하지 않습니다 응답에서 gzip 인코딩을 구성하려면 gzip으로 인코딩 된 요청에 대한 내 웹 서비스를 처리해야합니다.
업데이트 2 : 타사 도구는 Salesforce.com Outlook 플러그인입니다. 따라서 수정할 필요가 없으며 많은 다른 회사에서 문제없이 사용하고 있습니다. 그것은 내가 3
업데이트하고 (또는 일을하지 않음)하고있어 무언가있을거야 : 나는 IIS가 압축 된 데이터를 수신 POST 요청을 지원하지 않는다고 한 후 here을 발견, 그것은 단지 압축 된 응답을 지원합니다. 여전히 사실 일 수 있습니까?
저는 몇 년 동안 ASP 웹 서비스 (.asmx) 웹 서비스를 사용하지는 않았지만 HttpContext.Current.Response.Headers를 사용하여 응답 헤더에 액세스 할 수 없었습니까? –
@Florin, 정확합니다. PostRequestHandlerExecute 함수에서 잘못된 헤더를 제거하고 BeginRequest 함수에서 들어오는 요청에서 Accelpt-Encoding 헤더를 제거 할 수있었습니다. 작동시키기 위해서 두 가지를 모두해야했습니다. – Geoff