2014-05-14 3 views
0

현재 C#으로 학교 프로젝트로 웹 페이지를 만들고 있습니다.WebMethod가 ASP.NET에서 작동하지 않습니다.

하여 default.aspx.cs

 [WebMethod] 
    public static string MyWebMethod() 
    { 
     return string.Format("Hello From Server"); 
    } 

그리고 파일의 Ajax 호출 :

Default.aspx를 내가 가지고

<script type="text/javascript"> 
    function test() { 
     jQuery.ajax({ 
      type: "POST", 
      url: "Default.aspx/MyWebMethod", 
      data: {}, 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function(dd, status) { 
       alert('Success' + JSON.stringify(dd) + " status: " + JSON.stringify(status)); 
      }, 
      error: function(dd) { 
       alert('There is error' + dd.responseText); 
      } 
     }); 
    } 
</script> 
<input type="button" value="click me" onclick="test();" /> 

나는 파일에서의 WebMethod를 만들었습니다 "MyWebMethod()"의 시작 부분에 중단 점을 삽입했습니다. 그러나 메신저 디버깅을 수행하면 중단 점에 절대 도달하지 않습니다.

저는 약 4.5 시간 동안이 문제에 착석 해 왔습니다. 예를 들어 Google에서 찾을 수있는 모든 예를 시도해 보았습니다. "Default.aspx"및 "Default.aspx.cs"파일을 "working"코드로 만들면 솔루션에서 실행할 수 없습니다.

JQuery, Ajax 및 WebMethods를 사용하려면 몇 가지 설정이 필요합니까? 나는 JSON.stringify (DD)를 넣어 후

내가 오류 메시지가 얻을 수있었습니다 :

json:{"Message":"Authentication failed.","StackTrace":null,"ExceptionType":"System.InvalidOperationException"} 

을하지만 몇 시간을위한 솔루션을 검색 한 후 나는 거의 포기했다. 그 오류가있는 다른 사람들에게도 효과가있는 수정 프로그램을 사용해도 여전히 저에게는 효과가 없습니다.

누구나이 작업을 수행하는 방법을 알고 있습니까? 시간

+1

오류 메시지에서 답을 얻은 것 같습니다. 이 프로젝트에서 FormsAuth 또는 WindowsAuth를 사용하고 있습니까? – mituw16

+0

나는 정말로 모른다. 방금 VS2013에서 새로운 WinForms 프로젝트를 만들고 템플릿에서 코딩을 시작했습니다. "기본값", "정보", "연락처"페이지가 있습니다. FormsAuth 또는 WindowsAuth가 활성화되어 있는지 어떻게 알 수 있습니까? 마지막으로 – user1066441

+1

. 해결책을 찾았습니다! RouteConfig.cs 파일에서 줄 의 주석 처리를 해제해야합니다 .AutoRedirectMode = RedirectMode.Permanent; 그래야합니다 : //settings.AutoRedirectMode = RedirectMode.Permanent; 이 문제가 해결되었습니다. (새로 질문 할 때 자신의 질문에 답변 할 수 없음) – user1066441

답변

1

에 대한

덕분에 당신은 당신의 URL 경로를 변경해야합니다 당신의 JQuery와 아약스 :

url: "Default.aspx/MyWebMethod", 

에만 페이지로, 그것에서 .aspx 추가 할 필요가 없습니다.

+0

죄송합니다. 그것은 내가 시도한 것입니다. 두 가지 모두 작동하지 않습니다. – user1066441

0

당신의 방법에 정의되어 있다고 가정 할 Default.aspx 파일의 코드 숨김, "Views"라는 이름의 폴더에있는, 다음의 URL은 다음과 같이해야합니다 : App_Start 폴더의 Routeconfig에서 AutoRedirectMode

url: "/Views/Default.aspx/MyWebMethod", 
-1

을 주석 것 이 문제를 해결하십시오

// settings.AutoRedirectMode = RedirectMode.Permanent;