WinINET возвращается? - PullRequest
       29

WinINET возвращается?

1 голос
/ 08 сентября 2010

Я вижу, что WinHTTP не является повторно входящим ( 1 , 2 ). WinINET реентерабелен?

У нас есть элемент управления ActiveX, который выполняет синхронный HTTP с WinINET. Если браузер (в javascript) запускает асинхронный http-запрос (ajax), а затем немедленно вызывает операцию ActiveX (один и тот же процесс IE), создается впечатление, что две операции чередуются, возможно, повторяются в одном API и нарушают состояние WinINET clearInterval на Ajax неправильно завершается один раз. Мы используем EXT для ajax, и EXT предполагает, что clearInterval работает с первого раза.

1 Ответ

3 голосов
/ 08 сентября 2010

Важным ограничением Windows Internet (WinINet) API является то, что WinINet не следует использовать в службе (только в приложении с графическим интерфейсом) из-за возможных диалогов, Windows HTTP Services (WinHTTP) не имеет ограничения. Он предназначен для сервисных приложений, улучшена поддержка асинхронных запросов. В моей информации WinHTTP является реентератором. Если у вас есть ссылка, в которой написано что-то другое, пожалуйста, опубликуйте ее.

Использование WinINET в COM-приложении может иметь некоторые последствия. В Различная обработка асинхронных запросов описаны некоторые различия в том, как WinINet и WinHTTP асинхронные и синхронные запросы.

Последнее изменение в WinINET было для Windows XP и Windows Server 2003 R2 . WinHTTP имеет некоторые новые функции в Windows Server 2008 и Windows Vista .

Если часть вашего приложения недостаточно велика и использует только HTTP / HTTPS, я бы порекомендовал вам перенести его из WinINet Applications в WinHTTP . Если вы хотите или должны остаться с WinINET, вы можете опубликовать в своем вопросе пример того, как вы используете WinINet в своем приложении. Возможно, изменение кода может решить ваши многопоточные проблемы.

...