40 가지 웹 메소드로 웹 서비스를 제공합니다. HttpContext를 사용하여 요청을 보낸 메서드를 웹 서비스에 가져올 수 있습니까?HttpContext에서 호출되는 웹 서비스 메서드를 얻으려면 어떻게해야합니까?
모든 메서드가 활성화되고 HttpContext에만 액세스 할 수있는 추상 일반 명령이 있기 때문에 필요합니다.
감사합니다.
40 가지 웹 메소드로 웹 서비스를 제공합니다. HttpContext를 사용하여 요청을 보낸 메서드를 웹 서비스에 가져올 수 있습니까?HttpContext에서 호출되는 웹 서비스 메서드를 얻으려면 어떻게해야합니까?
모든 메서드가 활성화되고 HttpContext에만 액세스 할 수있는 추상 일반 명령이 있기 때문에 필요합니다.
감사합니다.
당신은 HttpRequest
의 PathInfo 속성을 사용할 수 있습니다.
당신은 아마 필요
HttpContext.Current
그러나 것은 당신이 ASPX 호환 모드가 켜져했습니다해야합니다, 그렇지 않으면 당신은 또한의 이름을 저장할 수 특성
에 액세스하지 못할 수 있습니다 다음은이 같은 항목의 배열 기능 :
void myServiceMethod()
{
HttpContext.Current.Items["MethodName"] = "myServiceMethod";
// ...
// here comes your method implementation
}
을하고 당신은 어느 곳에서나 HttpContext.Current.Items["MethodName"]
colection HttpContext.Current.Items는 현재 요청에 대해서만 항상 유효하므로 요청 관련 정보에 대한 저장소로 사용할 수 있습니다.
요청에 응답하면 가비지입니다. "/MyWebMethod"
: 슬래시 접두사 (/
)와 메소드 이름이됩니다
string methodName = HttpContext.Current.Request.PathInfo;
문자열 methodName
: 나는 당신의 질문을 수정 이해한다면
웹 서비스 asmx 경로 만 제공합니다. 특정 방법이 아닙니다. http://dc.dc.com/AgentWS/AgentService.asmx –
그러면 메소드 이름을 HttpContext.Current.Items에 첫 번째로 저장할 수 있습니다. 메소드 구현의 것. 그러면 현재 요청의 범위에있는 이름을 읽을 수 있습니다. –
@DorCohen 귀하의 필요를 반영하여 답변을 업데이트했습니다. –
고맙지 만 그것은 빈 문자열이 아닌 메서드 이름을 반환한다. –
@DorCohen : 클라이언트에서 사용하는 URL은 어떻게 보이나요? 'someBase/MyWebService.asmx/MyWebMethod'처럼? 'web.config'의''에 URL 매핑 모듈을 사용합니까? –
Oleg
아니요 : someBase/MyWebService.asmx –