Ведение журнала CodeSite из Delphi ISAPI - PullRequest
3 голосов
/ 08 сентября 2011

У меня есть CodeSite Express, в комплекте с Delphi XE Enterprise. Прямо сейчас я разрабатываю приложение ISAPI в XE (я отслеживаю и отлаживаю, используя присоединение к процессу в XE - работает отлично), и я хотел бы получить некоторые сообщения CodeSite из моего приложения ISAPI.

В Advanced Techniques во включенной справке CodeSite я нашел это:

"Регистрация в службах

Сервисные приложения запускаются на отдельной оконной станции и на рабочем столе. Однако по умолчанию диспетчер CodeSite запускается в оконной станции рабочего стола. В результате механизм передачи сообщений по умолчанию, используемый для передачи сообщений CodeSite в Dispatcher, окно сообщения wm_CopyData, блокируется Windows. Microsoft Windows не позволяет оконным сообщениям пересекать границы оконных станций ..... Поэтому, если мы хотим отправлять сообщения CodeSite из приложения-службы Диспетчеру, нам необходимо подключиться к Диспетчеру с использованием протокола TCP вместо CopyData ".

Вопрос:

Могу ли я считать, что одни и те же правила применимы к приложениям ISAPI? Что мне нужно использовать TCP для получения сообщений CodeSite из приложений ISAPI?

Ответы [ 2 ]

6 голосов
/ 08 сентября 2011

Учитывая тот факт, что ISAPI загружается из IIS, а IIS работает как служба, да.

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

В конфигурации по умолчанию да.Но это еще не все.Я не уверен в новых версиях, но в IIS 6, когда вы выбираете высокий уровень изоляции, ваша ISAPI dll запускается из процесса dllhost.exe через COM +.С помощью инструмента администрирования служб компонентов (ранее известного как конфигурация DCOM) вы можете изменить конфигурацию «активации» для использования текущего зарегистрированного пользователя, и экземпляр dllhost.exe будет запущен на активной оконной станции.(Вы даже можете запустить dllhost.exe в качестве хост-приложения для отладчика Delphi с параметром /ProcessID:{} и указателем записи COM +)

То, что я видел до сих пор в IIS 7, это то, чтоw3wp.exe теперь загружает и запускает ISAPI dll, но я не уверен, применимо ли что-то подобное выше.Вы можете проверить, есть ли в настройках пула приложений аналогичная настройка активации.

...