2016-11-12 3 views
0

내 ASMX 웹 서비스에 게시,이 오류가 반환됩니다아약스 후 반환 오류

유형 'myProjectName.AutoCompleteWebService'을 만들 수 없습니다.

나는 StackOverflow 및 다른 많은 사이트에서 모든 답변을 시도했지만 아무도 내 경우에는 작동하지 않습니다.

JQuery와

$("#txtSearchKeyWord").autocomplete({ 
    source: function (request, response) { 
     $.ajax({ 
      url: "AutoCompleteWebService.asmx/IndentifySearch", 
      data: "{ 'keyWord': '" + request.term + "','Lang': 'En' }", 
      dataType: "json", 
      type: "POST", 
      contentType: "application/json; charset=utf-8", 
      dataFilter: function (data) { return data; }, 
      success: function (data) { 
       $(currentElement).css({ "background": "rgb(255, 255, 255) none repeat scroll 0% 0%/auto padding-box border-box" }); 
       response($.map(data.d, function (item) { 
        return { 
         value: item 
        } 
       })) 
      }, 
      error: function (XMLHttpRequest, textStatus, errorThrown) { 
       alert(textStatus); 
      } 
     }); 
    }, 
    open: function (event, ui) { 
     //$(".ui-autocomplete").css("left", (parseInt($(".ui-autocomplete").css("left").replace("px", "")) - 114).toString() + "px"); 
    }, 
    minLength: 3, 
    appendTo: "#Autocontainer" 
}); 

ASMX

<%@ WebService Language="C#" CodeBehind="AutoCompleteWebService.asmx.cs" Class="RoyalTours.AutoCompleteWebService" %> 

C#

[WebService(Namespace = "http://tempuri.org/")] 
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
[ScriptService] 

public class autocomp : System.Web.Services.WebService 
{ 
    [WebMethod] 
    public List<string> IndentifySearch(string keyWord) 
    { 
     string currentPageURL = HttpContext.Current.Request.Url.AbsolutePath; 
     List<Package> olstPackage = null; 
     olstPackage = new PackageRepository().SearchPackage(keyWord); 
     List<string> olstResult = null; 
     if (olstPackage.Count > 0) 
     { 
      olstResult = new List<string>(); 
      for (int indexCountry = 0; indexCountry < olstPackage.Count; indexCountry++) 
      { 
       olstResult.Add(olstPackage[indexCountry].KeyWord); 

       if (olstPackage.Count <= 0) 
       { 
        olstResult.RemoveAt(indexCountry); 
       } 
      } 
     } 
     return olstResult; 
    } 

} 

답변

3

나는 이것이의 문제라고 추측 벤처 것 .asmx.asmx.cs 파일 사이의 클래스가 일치하지 않습니다. 당신의 .asmx 페이지 상단에

, 당신의 Class 속성과 같이, 당신의 .asmx.cs 페이지 상단의 class 일치하는지 확인 :

코드 숨김

public class myService: System.Web.Services.WebService 

전면 끝

<%@ WebService Language="C#" CodeBehind="myService.asmx.cs" Class="MyProject.MyService" %> 

Visual Studio를 사용하여 새 웹 서비스 (기본 이름이 Service1.asmx 인)를 만들고 MyService.asmx으로 이름을 바꾸는 것이 일반적으로 습관입니다. 그러나 이것은 이 아니며은 파일 참조와 함께 클래스 참조를 업데이트하므로 잊어 버린 경우 두통을 유발할 수 있습니다.


편집 : 앞서 가서 코드를 정리 만 실제로 페이지의 마크 업 및 코드 숨김을 포함했다 실현하기 위해 질문을 편집했다.

내가 의심했던 것처럼 클래스가 일치하지 않습니다. 살펴 보자

이 .asmx

Class="RoyalTours.AutoCompleteWebService" 

.asmx.cs을

public class autocomp 
+0

예 내가 피곤 너무 그래서 난 내 클래스 이름에 대한 관심을 지불하지 않았다 나는 잘 생각하고 있습니다 이 진정한 답변을 도와 주셔서 감사합니다 .... –

+0

도와 줘서 기뻐! – Santi

+0

고마워 ... :) –