2013-02-08 74 views
0

我想实现一个文本框从我们的数据库使用从AJAX工具包的AutoCompleteExtender的数据实现自动完成功能。文本框和控件位于嵌套在aspx页面上的用户控件上(它有一个updatepanel);脚本管理器在母版页上。AJAX Toolkit AutoCompleteExtender与PageMethod:401未授权错误

<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 Not Found错误,所以我知道它正在寻找正确的位置。

我一直无法弄清楚为什么我在这种情况下得到认证错误。我们没有使用Windows身份验证或跨越任何域名,而401问题已提出多次,没有任何解决方案提供了许多工作,

任何潜在的尝试,将不胜感激。

+0

哪个文件是GetCompletionList方法的定义? – 2013-02-08 15:40:32

+0

在同一页面后面的代码中,显示了文本框和扩展程序。 – 2013-02-08 15:46:32

+1

尝试将该方法从用户控件的'ascx.cs'文件移动到页面的'aspx.cs'文件。 – 2013-02-08 15:50:31

回答

1

尝试将GetCompletionList()方法从用户控件的ascx.cs文件移动到页面的aspx.cs