2013-02-08 5 views
0

AJAX Toolkit의 AutoCompleteExtender를 사용하여 데이터베이스의 데이터를 가져 오는 텍스트 상자에 자동 완성 기능을 구현하려고합니다. 텍스트 상자와 컨트롤은 aspx 페이지 (updatepanel이 있음)에 중첩 된 사용자 정의 컨트롤에 있습니다. 스크립트 관리자가 마스터 페이지에 있습니다. 확장기를 사용하여 PageMethod가있는 AJAX Toolkit AutoCompleteExtender : 401 Unauthorized error

<asp:TextBox ID="txtTowelManufacturer" runat="server" Width="200px"></asp:TextBox> 
<ajaxToolkit:AutoCompleteExtender ID="txtTowelManufacturer_AutoCompleteExtender" 
    runat="server" MinimumPrefixLength="1" ServiceMethod="GetCompletionList" 
    TargetControlID="txtTowelManufacturer" UseContextKey="True"> 
</ajaxToolkit:AutoCompleteExtender> 

[System.Web.Services.WebMethodAttribute(), System.Web.Script.Services.ScriptMethodAttribute()] 
public static string[] GetCompletionList(string prefixText, int count, string contextKey) 
{ 
    ... 
} 

나는 카시니를 사용하여 내 dev에 상자에 페이지를 실행

는 더 이상의 디버깅 정보와 함께 401 권한 오류가 발생합니다. 게시물이 정확하고 응답이 비어 있습니다.

{"Message":"There was an error processing the request.","StackTrace":"","ExceptionType":""} 

수동으로 직접 또는 상대 경로를 사용하여 ServicePath를 지정하면 동일한 오류가 발생합니다. 잘못된 경로를 지정하면 404 찾을 수 없음 오류가 올바르게 생성되므로 올바른 위치에서 찾고 있음을 알 수 있습니다.

이 상황에서 왜 인증 오류가 발생하는지 파악할 수 없었습니다. 우리는 Windows 인증을 사용하거나 도메인을 넘지 않으며, 401 문제가 여러 번 제기되었지만 제시된 해결책이 없기 때문에 많은 사람들에게 효과적이었습니다.

시도해 볼만한 결과가 있습니다.

+0

어떤 파일에'GetCompletionList' 메소드의 정의가 있습니까? –

+0

동일한 페이지의 코드 뒤에 텍스트 상자와 익스텐더가 있습니다. –

+1

메소드를 사용자 컨트롤의'ascx.cs' 파일에서 페이지의'aspx.cs' 파일로 옮겨보십시오. –

답변

1

GetCompletionList() 메서드를 사용자 컨트롤 ascx.cs 파일에서 페이지 aspx.cs으로 옮겨보십시오.

관련 문제