Silverlight HttpWebRequest генерирует исключение 404 Not Found, прежде чем Webservice ответит - PullRequest
3 голосов
/ 04 января 2012

Я пытаюсь вызвать службу Restful из приложения браузера Silverlight 4 Out, используя стек ClientHttp.

var request = (HttpWebRequest)HttpWebRequest.Create(uri);
request.BeginGetResponse(new AsyncCallback(ExecuteResponseCallback), state);

Услуга, которую я вызываю, для ответа после получения запроса занимает до 20 секунд, но кажется, что метод обратного вызова срабатывает примерно через 10 секунд. Я вижу в Fiddler, что служба, наконец, завершает запрос через 30 секунд с кодом ответа 200, но обратный вызов HttpWebRequest уже получил ответ 404. Not Found.

Я не вижу причин, по которым это должно происходить, в HttpWebRequest в Silverlight нет свойства Timeout, поэтому я не могу понять, почему запрос не ожидает ответа бесконечно долго.

Что-то я не так делаю?

1 Ответ

0 голосов
/ 04 января 2012

После небольшого тестирования выясняется, что обратный вызов запускается ровно через 10 секунд. Оказалось, что вызвано ключом реестра

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ReceiveTimeout

Виной является установка IE9 64bit, как и некоторых других приложений, которые изменяют это значение. Решение было просто удалить этот раздел реестра, и все хорошо.

Проблема также описана здесь Время ожидания веб-запроса Silverlight ClientHttp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...