Пользовательский веб-сервер C # не может принимать одновременные вызовы ajax - PullRequest
1 голос
/ 07 января 2012

Я написал собственный веб-сервер для разрабатываемого веб-приложения, однако я озадачен странной проблемой, с которой я, похоже, сталкиваюсь с сокетами .NET.

Для веб-страниц сервер работает полностью нормальноно при выполнении ajax-вызова на сервер для выполнения функции с длительным временем обработки сервер не может принять другой ajax-вызов из того же сеанса.

Процесс такой:

Нажатие кнопки на веб-сайте вызывает ajax-вызов на http://localhost:900/function:index (мой сервер распознает это), который выполняет длительную операцию, возвращающую «успех», когда она завершается.

Если я снова нажму кнопкуперед возвратом начального вызова браузер выполняет тот же вызов серверу, но на этот раз Socket.Accept () не возвращает новый сокет, и нет никаких признаков того, что соединение ожидает.(Firebug действительно показывает попытку подключения)

Однако, если я обновляю страницу или щелкаю ссылку, чтобы загрузить новую страницу, она работает как положено, а кнопка работает как положено (возвращая ошибку, поскольку операция завершена).все еще продолжается)

Подводя итог: Socket.Accept () не возвращает новый сокет, если существующий идентичный вызов ajax все еще обрабатывает.

Я в тупике ... Любые идеипочему это может быть?

1 Ответ

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

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

По какой-то причине браузер не отправлял два одновременных вызова ajax одновременно.

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