Asp.Net Ajax WebService и внутренняя ошибка 500
Я могу позвонить в веб-службу напрямую в браузер по следующему URL-адресу, и он возвращает все, что я хочу:
http://localhost:64438/MySearchAutoComplete.asmx/GetCompletionList
Когда я добавляю его в autocompleteexetender на страницу Default.aspx, вот так:
<cc1:AutoCompleteExtender ID="AutoCompleteExtender1"
TargetControlID="TextBox1"
runat="server"
ServiceMethod="GetCompletionList"
ServicePath="http://localhost:64438/MySearchAutoComplete.asmx"
CompletionSetCount="12"
MinimumPrefixLength="1" />
Страница загружается, у меня есть текстовое поле, но у меня появляется ошибка 500 каждый раз, когда я добавляю нажатие клавиши в текстовое поле. Я вижу ошибку в FireFox FireBug.
http://localhost:62702/ --->This is the webpage that load fine
альтернативный текст http://clip2net.com/clip/m12122/1269451120-clip-2kb.png -> Это ошибка
Любая идея? Я заметил, что мне нужно прикрепить процесс для отладки веб-сервиса, я тоже могу что-то сделать не так?
Изменить (Просмотр событий)Если я иду в Просмотр событий моей машины. Я могу видеть :
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)
Я также должен сначала запустить проект веб-сервиса, а затем остановить его и запустить веб-проект, чтобы иметь возможность иметь оба. Веб-сервис все еще работает (я могу запустить его напрямуюHTTP: // локальный: 64438 / MySearchAutoComplete.asmx оп = GetCompletionList) но на веб-странице у меня все еще есть эта ошибка 500.
Изменить 2 (Web.config)Добавление в проект веб-сервиса web.config:
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
Не решить проблему.
Изменить 3 (Прямой вызов)Вызов в Page_Load () того же метода из WebService работает очень хорошо:
string[] stuffs;
stuffs = proxy.GetCompletionList("1", 10);
MyList.DataSource = stuffs;
MyList.DataBind();
Но это не работает с AutoCompleteExtender ...