C# 4.0 带有PageMethod的AJAX工具包AutoCompleteXtender:401未经授权的错误

C# 4.0 带有PageMethod的AJAX工具包AutoCompleteXtender:401未经授权的错误,c#-4.0,autocompleteextender,C# 4.0,Autocompleteextender,我正在尝试在一个文本框上实现一个自动完成功能,该文本框使用AJAX工具包中的AutoCompleteXtender从数据库中提取数据。文本框和控件位于嵌套在aspx页面(具有updatepanel)上的用户控件上;脚本管理器位于母版页上 <asp:TextBox ID="txtTowelManufacturer" runat="server" Width="200px"></asp:TextBox> <ajaxToolkit:AutoCompleteExtender

我正在尝试在一个文本框上实现一个自动完成功能,该文本框使用AJAX工具包中的AutoCompleteXtender从数据库中提取数据。文本框和控件位于嵌套在aspx页面(具有updatepanel)上的用户控件上;脚本管理器位于母版页上

<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)
{
    ...
}
如果直接或使用相对路径手动指定ServicePath,则会出现相同的错误。如果我指定了不正确的路径,它会正确地生成404 Not Found错误,因此我知道它正在寻找正确的位置

我一直无法理解为什么在这种情况下会出现身份验证错误。我们没有使用Windows身份验证或跨任何域,虽然多次提出401个问题,但所提供的解决方案中没有一个在多年内有效


任何尝试的线索都将不胜感激。

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

其中是
GetCompletionList
方法的定义?在同一页面的代码后面,文本框和扩展器处于打开状态。尝试将该方法从用户控件的
ascx.cs
文件移动到页面的
文件
aspx.cs
文件。这很有效,谢谢!我不认为我会想到去尝试。请把答案贴出来,这样我就可以标记了。
{"Message":"There was an error processing the request.","StackTrace":"","ExceptionType":""}