Сбой приложения службы Datasnap - PullRequest
1 голос
/ 31 июля 2010

Я создал службу Datasnap, используя в качестве руководства белую бумагу Боба Сварта. Я успешно отлаживал и развертывал, используя приложение VCL Forms в качестве сервера. Но когда я пытаюсь развернуть версию службы, она устанавливается нормально, затем я пытаюсь запустить службу и она немедленно останавливается. Ошибка в журнале событий указывает на то, что набор портов уже используется, я пробовал разные номера портов для TCPServerTransport и HTTPService без какой-либо радости. DSServer не установлен на автозапуск, так как я хочу установить номер порта из файла конфигурации. Сообщение об ошибке, отображаемое в журнале событий:

Сбой при запуске службы: не удалось связать сокет. Адрес и порт уже используются ..

Я также пытался записать в файл журнала при запуске и выполнении, но похоже, что это не так далеко.

Решение нужно было как можно скорее, прежде чем я вернусь к толстому клиенту, чего я не очень хочу делать.

Спасибо

Ответы [ 2 ]

1 голос
/ 01 августа 2010

Во-первых, получите копию TCPView из набора Sysinternals (теперь она работает под управлением Microsoft) и используйте его для отслеживания того, какое приложение использует порт, который вы хотите использовать.

Я бы рискнулпредположение, что если приложение работает как автономный (как вы говорите) и вы пытаетесь использовать один и тот же порт в службе, то, возможно, приложение-служба открывает порт при запуске, не осознавая этого, а затем, когдаВы пытаетесь открыть порт вручную, приложение находит, что оно уже используется.Или как-то приложение пытается открыть порт дважды.Первый раз успешен, но, возможно, из-за события или неожиданного пути к коду, приложение пытается открыть его во второй раз и не удается.TCPView поможет определить это.

1 голос
/ 31 июля 2010

Если вы уверены, что настроенный вами порт на самом деле свободен и не используется никаким другим программным обеспечением на компьютере, то может быть запущено антивирусное программное обеспечение или программное обеспечение безопасности, которое блокирует прослушивание любого программного обеспечения любым конкретным программным обеспечением. порты или на любой порт, кроме нескольких настроенных. Полученное сообщение может быть одним из симптомов того, как антивирусная программа / программа безопасности обрабатывает попытки приложений начать прослушивание через порт.

...