2011-09-07 4 views
3

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

В передовых методов в прилагаемом CodeSite помощь, я нашел это:.

«Вход Из служб

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

Вопрос:

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

ответ

6

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

3

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

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