에서 비누 요청인지 확인하십시오. 요청이 HttpApplication의 AuthenticateRequest 이벤트에 대한 비누 요청인지 아는 방법이 있습니까? ServerVariables [ "HTTP_SOAPACTION"]가 항상 작동하지 않는 것 같아요.HTTP 요청이 HttpApplication.AuthenticateRequest
public void Init(HttpApplication context) {
context.AuthenticateRequest += new EventHandler(AuthenticateRequest);
}
protected void AuthenticateRequest(object sender, EventArgs e) {
app = sender as HttpApplication;
if (app.Request.ServerVariables["HTTP_SOAPACTION"] != null) {
// a few requests do not enter here, but my webservice class still executing
// ...
}
}
web.config 파일에서 webservices 용 HTTP POST 및 HTTP GET이 비활성화되었습니다. 비누 + XML의 ContentType을 보면
는<webServices>
<protocols>
<remove name="HttpGet" />
<remove name="HttpPost" />
<add name="AnyHttpSoap" />
</protocols>
</webServices>
부분적으로 만 내 문제를 해결합니다. 예를 들어, 대신에 표준 헤더의 SOAPAction을 갖는
Cache-Control: no-cache
Connection: Keep-Alive
Content-Length: 1131
Content-Type: text/xml
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: ro
Host: localhost
mymethod: urn:http://www.wsnamespace.com/myservice
일부 고객 : "http://www.wsnamespace.com/myservice/mymethod는"위의 예에서와 같이가 someting있다. "mymethod"는 [WebMethod] 속성이있는 웹 서비스 클래스의 메서드를 나타내고 "http://www.wsnamespace.com/myservice"은 webservice의 네임 스페이스입니다. 여전히 서비스는 완벽하게 정상적으로 작동합니다. 소비자는 다른 프레임 워크 (PHP, .NET, Java 등의 NuSOAP)를 사용합니다.
웹 서비스 호출과 자동 생성 된 HTML 문서 (동일한 URL을 가짐) 사이에 차이점을 만들고 싶습니다. 어쩌면 내 경우에는 .asmx 확장자를 확인한 다음 text/xml, application/xml, aplication/soap + xml 등의 ContentType을 확인할 수 있습니다. – Vasea