2013-12-11 3 views
-2

В настоящее время я работаю над большой страницей asp.net, созданной множеством других разработчиков, используемой многими людьми изнутри. Я получил довольно простую задачу по изменению страницы, потому что мне пришлось создать класс и добавить DLL в папку bin.Исключение асинхронной операции, если я хочу создать экземпляр класса

VoiceChecker vr = new VoiceChecker(); 

бросает следующее исключение:

асинхронные операции не допускаются в этом контексте. На странице, начинающейся , асинхронная операция должна иметь атрибут Async, равный true , а асинхронную операцию можно запустить только на странице до Событие PreRenderComplete.

Почему это асинхронная операция? Я не хочу, чтобы он был асинхронным, я действительно хочу, чтобы страница дождалась завершения этой операции. Я попытался настроить @Page на Async = true, но по какой-то причине он просто блокирует страницу бесконечно, хотя мой код должен быть выполнен в < 1s.

Как сделать мой класс синхронным?

+2

Вы уверены, что это строка, вызывающая ошибку? Можете ли вы опубликовать код для этого класса? – woz

+0

@woz Да, я отлаживал это по строкам. Ваш комментарий на самом деле уже помог мне. У конструктора класса был некоторый неиспользуемый код (init некоторого распознавания голоса). Он работал после того, как я удалил его. – Feroc

+0

Так проблема решена? Я отправлю ответ. – woz

ответ

0

Объявление нового объекта не вызывает эту ошибку, если конструктор не содержит асинхронный код.

Смежные вопросы