ASP.NET приложение зависает после звонка - PullRequest
0 голосов
/ 24 мая 2010

У меня есть простое приложение ASP.NET, размещенное на моем локальном IIS6 под Vista.

Содержит кнопку, при нажатии которой я выполняю фрагмент кода для распознавания текста в WAV-файле (используя класс System.Speach.Recognition.SpeechRecognition) и отображаю текст в метке.

Код отлично работает в настольном приложении и почти работает в Интернете ... Я говорю почти, потому что, если я отлаживаю, я вижу, что распознаватель возвращает правильный текст из WAV, я вижу, что Я завершаю обработчик для нажатия кнопки без ошибок, но на моей странице ничего не отображается, и страница выглядит как загрузка ... она зависает, или что-то ... Нет ошибок, нет тайм-аута, ничего. Просто загружаюсь ...

Я не знаю, помогает ли эта деталь, но для того, чтобы часть кода, которая уже работала над настольным приложением, работала в веб-приложении, мне пришлось установить идентификатор ApplicationPool моего приложения в LocalSystem (нарушение безопасности, я знаю). В противном случае я получил бы ошибку «Отказано в доступе» (0x80070005 (E_ACCESSDENIED)).

У вас есть идея, почему звонок зависает так? Я борюсь с этим более двух дней, время давит на меня, и я понятия не имею ... Любая помощь действительно приветствуется!

Спасибо!

1 Ответ

1 голос
/ 16 июня 2010

После еще одной недели тупиковых ситуаций я нашел решение этой проблемы.Я выкладываю это просто так, чтобы другие, которые могли бы решить эту проблему, быстрее нашли решение.

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

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

В любом случае, очень простой вызов в другом потоке исправит это!

...