2010-06-16 5 views

답변

1

ASMX 웹 서비스는 전체 ASP.NET 파이프 라인을 사용하지 않습니다. 나는이 두 사건이 심지어 웹 서비스를 위해 불이 난다고 믿지 않는다.

SOAP 데이터 스트림에 액세스하려면 SoapExtension을 구현해야합니다.


은 물론, 나 또한 마이크로 소프트가 지금 ASMX 웹 서비스는 "기존 기술"로 간주 독자를 생각 나게하는이 기회를해야합니다. 그들은 모든 새로운 웹 서비스 개발이 WCF를 사용해야한다고 제안합니다.

+0

감사합니다. WCF가 좋은 웹 서비스로 대체되고 있음을 알고 있습니다. 그러나 Application_BeginRequest 및 Application_EndRequest가 asmx에서 호출되지 않았다는 착각을하게됩니다. 실제로 웹 서버에 의해 올바르게 호출됩니다. 내가 가지고있는 질문은 Request 객체에서 비누 정보를 "꺼내는"방법입니다. 디버거는 거기서 깨지기는하지만 객체는 너무 많은 것들이 포함되어 있고 비누 몸체를 찾을 수없는 것 같습니다. – Ash

+0

@Ash : 나는 이벤트가 기쁘다.하지만 시체를 얻을 수있는 곳은 없다. "정상적인"ASP.NET 응용 프로그램에서 "일반"HTTP 요청의 HTTP 요청 본문을 어떻게 얻을 수 있습니까? –

+0

연구를 많이 한 후에 가능한 유일한 방법은 soap xml 메시지를 가져 오기 위해 자체 SoapExtension 클래스를 작성하는 것이 었습니다 – Ash

2

호출하여 당신이 요청의 XML 내용을 읽을 수 있습니다이 경우 해고 이러한 이벤트 경우 다음

Request.InputStream.Read(...); 

하고 :

Request.InputStream.Seek(0, SeekOrigin.Begin); 

이되는 InputStream의 위치를 ​​재설정합니다.