2013-02-08 3 views
0

J'essaie d'implémenter une fonction de saisie semi-automatique sur une zone de texte qui extrait les données de notre base de données à l'aide de la fonction AutoCompleteExtender de AJAX Toolkit. La zone de texte et le contrôle sont sur un contrôle utilisateur imbriqué sur une page aspx (qui a un panneau de mise à jour); le gestionnaire de script est sur la page maître.AJAX Toolkit AutoCompleteExtender avec PageMethod: 401 Erreur non autorisée

<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) 
{ 
    ... 
} 

Quand je lance la page sur ma boîte de dev en utilisant cassini, en utilisant l'extension génère une erreur 401 non autorisée sans autre informations de débogage. Le message est correct et la réponse est vide:

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

Si je spécifier manuellement le ServicePath soit directement, soit en utilisant un chemin relatif, je reçois la même erreur. Si je spécifie un chemin incorrect, il génère correctement une erreur 404 Not Found, donc je sais qu'il regarde au bon endroit.

J'ai été incapable de comprendre pourquoi je reçois une erreur d'authentification dans cette situation. Nous n'utilisons pas l'authentification Windows ou ne croisons aucun domaine, et bien que 401 problèmes aient été soulevés plusieurs fois, aucune des solutions présentées n'a fonctionné pour beaucoup,

Toutes les pistes à essayer seraient appréciées.

+0

Dans quel fichier se trouve la définition de la méthode 'GetCompletionList'? –

+0

Dans le code derrière la même page, la zone de texte et l'extension sont activés. –

+1

Essayez de déplacer la méthode du fichier 'ascx.cs' du contrôle utilisateur vers le fichier' aspx.cs' de la page. –

Répondre

1

Essayez de déplacer la méthode GetCompletionList() du fichier ascx.cs du contrôle utilisateur vers la page aspx.cs.

Questions connexes