Установление соединения DDE из службы WCF, размещенной в консольном приложении - PullRequest
0 голосов
/ 05 июля 2010

Служба WCF размещена в консольном приложении. Служба пытается подключиться к открытому приложению Windows по протоколу DDE. Неудачно. В чем проблема? Консольное приложение запущено в моей учетной записи, как приложение dde для Windows.

Ответы [ 2 ]

0 голосов
/ 12 июля 2010

Вы предоставили так мало подробностей о проблеме, что почти невозможно дать вам окончательный ответ. Тем не менее, ваш комментарий к ответу Аллона интересен.

Если я запускаю слушателя в консоли без WCF, все хорошо

То есть ваше приложение DDE что-то слушает? Теперь я должен предположить, что вы пытались создать клиент DDE, который подписывается на консультативный цикл через DdeClient.StartAdvise. Этот метод извлечения данных сильно зависит от механизма прокачки сообщений.

Когда вы создаете экземпляр DdeClient, он по умолчанию создает собственный насос сообщений в отдельном потоке для получения этих уведомительных уведомлений. Это объясняет, почему это работает, когда вы оставляете свой код в базовом консольном приложении.

Однако, когда вы смешиваете WCF, могут возникнуть некоторые сложности, особенно связанные с потоками, которые, возможно, придется решать вручную. Единственный способ, которым я смогу сказать, это предоставить вам дополнительную информацию.

0 голосов
/ 05 июля 2010

Я не эксперт в этой области, но я полагаю, что DDE требует, чтобы у вас был запущенный насос сообщений (которого нет в консольном приложении), так что вам может повезти с размещением службы WCF в приложении WinForms.

...