从控制台应用程序中托管的 WCF 服务建立 DDE 连接

发布于 2024-09-07 21:03:06 字数 112 浏览 5 评论 0原文

我在控制台应用程序中托管了 WCF 服务。服务尝试通过 DDE 协议连接到打开的 Windows 应用程序。运气不好。问题出在哪里?控制台应用程序正在我的帐户中运行,作为 dde ​​Windows 应用程序。

I have WCF service hosted in console app. Service tries to connect to opened windows application via DDE protocol. No luck. Where is the problem? Console app is running in my account, as the dde windows app.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

御守 2024-09-14 21:03:06

我不是这个领域的专家,但我相信 DDE 要求您有一个正在运行的消息泵(控制台应用程序缺乏),因此您可能会更好地在 WinForms 应用程序中托管 WCF 服务。

I'm not expert in this field, but I believe DDE requires that you have a running message pump (which a console application lacks), so you may have better luck hosting your WCF service in a WinForms app.

扛刀软妹 2024-09-14 21:03:06

您提供的有关问题的细节太少,几乎不可能给您一个明确的答案。然而,你对阿隆回答的评论很有趣。

如果我在控制台中运行侦听器而没有
WCF,一切都很好

那么您的 DDE 应用程序正在侦听某些内容吗?我现在必须假设您已尝试创建一个通过 DdeClient.StartAdvise 订阅咨询循环的 DDE 客户端。这种数据检索方法高度依赖于消息泵机制。

当您创建 DdeClient 实例时,它默认会在单独的线程上创建自己的消息泵来接收这些咨询通知。这可以解释为什么当您将代码留在基本控制台应用程序中时它会起作用。

但是,当您混合 WCF 时,可能会增加一些复杂性,特别是涉及可能必须手动处理的线程。我能够判断的唯一方法是您是否提供更多信息。

You have provided so little details about the problem that is going to be nearly impossible to give you a definitive answer. However, your comment to Allon's answer is interesting.

If i run listener in console without
WCF, all is fine

So your DDE application is listening for something? I now have to assume that you have attempted to create a DDE client that subscribes to an advisory loop via DdeClient.StartAdvise. This method of data retrieval is highly dependent on a message pumping mechanism.

When you create an instance of DdeClient it will by default create its own message pump on a separate thread to receive these advisory notifications. That would explain why it works when you leave your code in a basic console application.

However, when you mix WCF there may be some adding complexities particularly concerning threads that may have to be dealt with manually. The only way I am going to be able to tell is if you provide more information.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文