2010-06-25 8 views
1

HTTP GET 요청을 수행 할 수있는 ASMX 웹 서비스를 만들려고합니다. 이미 수행 한 작업을 설명하기 위해 간단한 코드 조각이 있습니다. 이 외에도ASMX 웹 서비스 및 HTTP GET

using System.Web.Script.Services; 
... 

[WebMethod] 
[ScriptMethod(UseHttpGet = true)] 
public string HelloWorld(HttpContext context) 
{ 
return context.Request.Params.Get("userId").ToString(); 
} 

가, 나 또한 내 Web.config 파일에서 다음 노드를 추가 한

<webServices> 
    <protocols> 
    <add name="HttpGet"/> 
    <add name="HttpPost"/> 
    </protocols> 
</webServices> 

내가 직면 해요 문제는 지속적으로 "지칠대로 지친를 얻고 있다는 것입니다 System.Web.HttpContext cannot be serialized because it does not have a parameterless constructor "이 웹 서비스를 디버깅 할 때마다 오류 메시지가 표시됩니다. 나는 그 문제가 무엇인지 전혀 알지 못한다. 나는이 곤경에서 벗어나게 해 주려는 어떤 도움에 대해서 정말로 감사 할 것이다. 나는 HTTP GET 요청이 매우 간단하다고 생각하지만, 나는 나의 좌절감의 원인이 무엇인지에 대해 정말로 확신하지 못한다.

답변

4

은 당신이 당신은 함수 서명에서 매개 변수를 지정할 수 있습니다

[WebMethod] 
[ScriptMethod(UseHttpGet = true)] 
public string HelloWorld(int userId) 
{ 
    return userId.ToString(); 
} 

을 원한다고 생각하고 당신이 그것을 필요로하는 경우에 당신은 Context로 (기본 클래스 WebService에의 속성을)를 HttpContext에 액세스 할 수 있습니다.

+0

내 개인적인 경험으로 [ScriptMethod (UseHttpGet = true)]는 서비스 메소드에 전혀 영향을 미치지 않습니다. 메서드가 GET 만 사용하도록 강제하지 않으며 web.config에서 허용하는 한 GET을 사용하여 메서드를 호출 할 수 있습니다. – Sal

관련 문제