VB6, почему я хочу, чтобы автоматическое выполнение и оставалось в памяти? - PullRequest
1 голос
/ 19 апреля 2011

14 лет назад, когда я был зеленым рогом, настройка компонентов для классического ASP была не в моей зарплате ... Теперь, однако, я вернулся к будущему, и я чувствую себя вынужденным поддерживать и кодировать противклассический ASP-проект с использованием COM-объекта.

Теперь я нахожу себя в поиске древних статей, датированных с 1999 по 2001 год, и мне интересно, есть ли у кого-нибудь хороший ответ относительно того, почему COM (ActiveX .dll)должно иметь значение «Автоматическое выполнение и сохранение в памяти»?

Следует также отметить, что в текущей архитектуре сайта эти DLL-файлы просто сброшены на сервер (зарегистрирован, конечно).Мне интересно про COM + и МТС.Сейчас мы придерживаемся классического ASP (длинная история).Тем не менее, я надеюсь перейти на .NET с быстротой.Так что, если я смогу минимизировать время обслуживания этой текущей архитектуры, это было бы полезно.Не могли бы вы также дать мне причину, почему мы должны использовать COM + и МТС?А также, что будет связано с добавлением этих функций.

1 Ответ

5 голосов
/ 19 апреля 2011

Автоматическое выполнение не позволяет вашему двоичному файлу VB6 показывать интерактивный диалог, то есть окно на сервере , которое ваш веб-клиент не сможет увидеть или взаимодействовать.

Это может быть Msgbox () или всплывающее сообщение об ошибке во время выполнения. Когда Автоматическое выполнение помечено, ошибки времени выполнения регистрируются в журнале событий Windows.

Хранится в памяти не позволяет IIS (или вашему хосту) немедленно освободить вашу DLL. В зависимости от настроек вашего хоста, DLL будет храниться в памяти и использоваться повторно. Некоторые хосты (например, IIS) через некоторое время освободят DLL.

См. Также: . В последней версии файла Msvbvm60.dll можно настроить параметр «Автоматическое выполнение» и «Сохранение в памяти»

.

Вы должны включить необслуживаемый Вариант исполнения и удерживается в Опция памяти перед компиляцией в разместить Microsoft Visual Basic Enterprise Edition для Windows 6.0 компонент (Microsoft ActiveX DLL) в многопоточная среда, такая как Microsoft Transaction Server (Mtx.exe), Интернет-информация Сервисы (Inetinfo.exe), COM + (Dllhost.exe) и Microsoft SQL Сервер 7.0 или SQL Server 2000 (Sqlservr.exe). Тем не менее, вы не можете знать, собирается ли компонент использовать в такой среде или вы может забыть включить без присмотра Вариант исполнения и удерживается в Вариант памяти. Для решения этой проблемы проблема, последняя версия Среда выполнения Visual Basic (Msvbvm60.dll) вводит новую функцию, которая позволяет вам включить без присмотра Вариант исполнения и удерживается в Опция памяти во время выполнения.

И: Проблемы с многопоточностью в компонентах ActiveX для Visual Basic 6.0

  • Нарушение прав доступа внутри MSVBVM60.DLL.
  • Клиент входит в состояние тупика. Вы можете увидеть эти два симптома, если визуальный Основная библиотека ActiveX размещается в многопоточная среда, для например, IIS, MTS или многопоточный клиент и сохранить в памяти опция не включена.

И, конечно: Справка Visual Basic Вкладка «Общие» (диалоговое окно «Свойства проекта»)

Автоматическое выполнение Указывает, что проект предназначен для запуска без взаимодействия с пользователем. Unattended проекты не имеют элементов интерфейса. Любые функции времени выполнения, такие как сообщения, которые обычно приводят к пользователю взаимодействие записывается на событие журнал.

Сохраняется в памяти Сохраняет проект в памяти. Тем не менее, есть стоимость исполнения: проект сохранен в память не выгружается до процесс завершается.

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