Asp.Net Ajax WebService e erro interno 500
Posso chamar o serviço da web diretamente para o navegador com o seguinte URL e ele retorna tudo o que eu quero:
http://localhost:64438/MySearchAutoComplete.asmx/GetCompletionList
Quando o adiciono a um autocompleteexetender na página Default.aspx, é assim:
<cc1:AutoCompleteExtender ID="AutoCompleteExtender1"
TargetControlID="TextBox1"
runat="server"
ServiceMethod="GetCompletionList"
ServicePath="http://localhost:64438/MySearchAutoComplete.asmx"
CompletionSetCount="12"
MinimumPrefixLength="1" />
O carregamento da página, eu tenho uma caixa de texto, mas tenho um erro 500 toda vez que adiciono um pressionamento de tecla na caixa de texto. Eu vejo o erro no FireFox FireBug.
http://localhost:62702/ --->This is the webpage that load fine
texto alternativo http://clip2net.com/clip/m12122/1269451120-clip-2kb.png -> Esse é o erro
Qualquer ideia? Percebi que preciso anexar o processo para depurar o serviço da web; também posso fazer algo errado com ele?
Editar (Visualizador de Eventos)Se eu for ao Visualizador de Eventos da minha máquina. Eu consigo ver :
Exception information:
Exception type: InvalidOperationException
Exception message: Request format is unrecognized for URL unexpectedly ending in '/GetCompletionList'.
Thread information:
Thread ID: 8
Thread account name: MTL\daok
Is impersonating: False
Stack trace: at System.Web.Services.Protocols.WebServiceHandlerFactory.CoreGetHandler(Type type, HttpContext context, HttpRequest request, HttpResponse response)
at System.Web.Services.Protocols.WebServiceHandlerFactory.GetHandler(HttpContext context, String verb, String url, String filePath)
at System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig)
at System.Web.HttpApplication.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
Também tenho que iniciar o projeto de serviço da web primeiro, depois paro e inicio o projeto da web para poder ter os dois. O serviço da web ainda funciona (eu posso acioná-lo diretamentehttp: // localhost: 64438 / MySearchAutoComplete.asmx? op = GetCompletionList), mas na página da Web ainda tenho esse erro 500.
Editar 2 (Web.config)Adicionando ao projeto webservice web.config:
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
Não resolveu o problema.
Editar 3 (chamada direta)Chamar no Page_Load () o mesmo método do WebService funciona muito bem:
string[] stuffs;
stuffs = proxy.GetCompletionList("1", 10);
MyList.DataSource = stuffs;
MyList.DataBind();
Mas não está funcionando com o AutoCompleteExtender ...