![](/img/trans.png)
[英]Communication between .Net Desktop Application and ASP.NET Web application
[英]Two-way communication between web application and desktop application
我很好奇这种情况是否可能:
2.2选项甚至可能吗? WCF服务应使用哪种绑定? 跨域调用(从公共域到本地主机)是否存在任何问题?
编辑-是的,通信不是双向的,因为在我们的方案中,桌面应用程序无法直接操纵Web应用程序。 轮询选项只是一个如何从桌面应用程序获取状态到Web应用程序的想法,因此,如果有更好的选择,我非常想听听它:)
Web应用程序和桌面应用程序之间还有其他几种通信方式(Java插件,用于IE的Active X,firefox插件,chrome本机插件等),但是对于新版本的浏览器,Java版本, Windows版本...,则必须维护所有这些。 我们正在寻找可以在所有主要浏览器上使用的选项,并且负责Web应用程序的制造商将尽可能少地工作。
2.2选项甚至可能吗?
WCF服务应使用哪种绑定?
对于来自Web应用程序的传入呼叫(href链接),您应该使用WCF webHttpBinding或类似Nancy的东西将您的服务操作公开为REST终结点,这要轻得多。
如前所述,对于轮询,您需要托管另一个REST端点。
Web应用程序与桌面应用程序之间的双向通信
根据您的描述,这似乎不是真正的双向要求,就像在双工中一样(双向通话)。 在这两种情况下,您都将概述呼叫源自合作伙伴网站。 只是反应是相反的,还是我错过了什么?
轮询选项只是一个如何从桌面应用程序获取状态到Web应用程序的想法
严格地说,轮询鼻祖不是Web应用程序本身 ,而是通过JavaScript客户端浏览器。 除了使用客户端应用程序作为台式机和服务器之间的中介的任何架构问题之外,在浏览器中实现跨域脚本编写还存在非常复杂的问题。
我建议一个更好的解决方案是在状态更改时从桌面应用程序调用Web应用程序,然后让Web应用程序通过Ajax轮询(到Web应用程序)或诸如SignalR来“通知” Web客户端。
这可能对您的合作伙伴来说并没有更多的工作,因为他们需要托管一个新的“状态已更改”端点供您调用,而ajax轮询任务可能更简单,因为他们将轮询自己的服务而不是你的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.