コンソール アプリでホストされている WCF サービスがあります。サービスは、開いている Windows アプリケーションに DDE プロトコル経由で接続しようとします。運がない。問題はどこだ?dde Windows アプリとして、コンソール アプリが私のアカウントで実行されています。
2 に答える
私はこの分野の専門家ではありませんが、DDEではメッセージポンプ(コンソールアプリケーションにはない)を実行する必要があると思います。そのため、WinFormsアプリでWCFサービスをホストする方が幸運かもしれません。
あなたはあなたに決定的な答えを与えることはほとんど不可能になるであろう問題についてほとんど詳細を提供していません。しかし、Allonの答えに対するあなたのコメントは興味深いものです。
WCFなしでコンソールでリスナーを実行すると、すべて問題ありません
では、DDEアプリケーションは何かをリッスンしていますか?ここで、を介してアドバイザリループにサブスクライブするDDEクライアントを作成しようとしたと想定する必要がありますDdeClient.StartAdvise
。このデータ取得方法は、メッセージポンピングメカニズムに大きく依存しています。
インスタンスを作成するDdeClient
と、デフォルトで、これらのアドバイザリ通知を受信するために別のスレッドに独自のメッセージポンプが作成されます。これは、基本的なコンソールアプリケーションにコードを残したときに機能する理由を説明しています。
ただし、WCFを混在させると、特に手動で処理する必要のあるスレッドに関して、複雑さが増す場合があります。私が知ることができる唯一の方法は、あなたがより多くの情報を提供するかどうかです。