2010-07-05 5 views
0

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

+0

Как вы пытаетесь установить диалог DDE? Вы используете DDEML? –

+0

Я использую NDde. – INs

+0

Хорошо, можете ли вы опубликовать сообщение об исключении или описать, что заставляет вас думать, что оно не работает? –

ответ

0

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

+0

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

0

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

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

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

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^