我有两个不同的winform应用程序,App1和App2。 App1调用app2的exe(使用DOS命令窗口)并发送消息以启动app2。 app2开始执行,一旦它完成任务,它将消息发回给app1,执行成功。我怎样才能使用WCF实现这一功能。早些时候相同的代码是用foxpro编写的,而且这个finc是通过内存管理实现的。使用WCF的两个winform应用程序之间的通信?
回答
这只是概念性的如何实现这一点:
您需要实现WCF服务。 如何完成这项任务有很多方法。其中一个应该是这样的。
App1调用service方法并告诉app2需要执行。 App1可以等待响应。
App2不时ping服务,看看是否需要执行。 App2完成了其工作并调用了服务方法,告诉它已完成。
App1在完成时会得到响应。
其他选项不是实现请求/响应,而是从App1 ping服务以查看App2是否完成了其工作。
对于如何实现WCF服务看,例如:http://wcftutorial.net/WCF-Getting-Started.aspx
非常感谢。应用程序1应该是服务器,因为有很多像app2这样的应用程序,并且所有应该按顺序执行,一旦app2被执行,然后从应用程序1调用app3执行,并且soo。所有的应用程序都在同一个系统上。请提出实现此目标的最佳方法。 –
我想你想要的是对等网络通信,其中2个应用程序(这可能会或可能不会在同一台机器上运行)发送互不相同的消息。聊天程序如MSN Messenger的工作方式。
有一个关于peer-to-peer communication using WCF at MSDN的“简单”教程。
请注意,这并不像听起来那么容易。您可能更喜欢just send messages using Windows' SendMessage
。
非常感谢。应用程序1应该是服务器,因为有很多像app2这样的应用程序,并且所有应该按顺序执行,一旦app2被执行,然后从应用程序1调用app3执行,并且soo。所有的应用程序都在同一个系统上。请提出实现此目标的最佳方法。 –
有很多方法可以做到这一点,最好的方法取决于如此多的变量,以至于无法回答您的问题。寻求贵公司的建筑师或高级开发人员的帮助。 –
基本上:
在一侧上实例化 “服务器”
UIIServiceHost = new ServiceHost(typeof(UIInterop));
UIIServiceHost.Open();
其中UIInterop是一个类implementaing IUIInterop即服务合同
using System.ServiceModel;
[ServiceContract]
public interface IUIInterop {
[OperationContract]
void SetControlValue (UIControl c);
}
[DataContract]
public class UIControl {
[DataMember]
public String Name { get; set; }
[DataMember]
public String Value { get; set; }
}
Generate代理类=> UIInteropClient
另一侧实现一个客户端使用代理类
using (UIInteropClient proxy = new UIInteropClient("nameDependingOfAppConfig")) {
proxy.SetControlValue(new UIControl {});
}
=====编辑=====
的类和接口名称只表示我缺乏想象力的
- 1. 使用WCF服务的两个.Net应用程序之间的相互通信
- 2. ASP MVC和WinForm应用程序之间的通信
- 3. 来自应用程序的两个窗口之间的通信
- 4. Web应用程序的两个客户端之间的通信
- 5. 两个ASP.NET MVC应用程序之间的通信
- 6. 两个Flex应用程序之间的通信
- 7. 两个导轨应用程序之间的通信
- 8. 两个应用程序之间的android通信
- 9. 两个MS Access应用程序之间的通信?
- 10. 两个java程序之间的通信
- 11. 使用相同的Android应用程序的两个设备之间的通信
- 12. 不同域之间的两个Web应用程序之间的Javascript通信
- 13. wcf应用程序之间的全双工通信
- 14. Linux,应用程序之间的通信
- 15. vb.net应用程序之间的通信
- 16. Intranet应用程序之间的通信
- 17. 应用程序之间的通信?
- 18. Rails应用程序之间的通信
- 19. 使用Websockets的两个JAVA Web应用程序之间的通信
- 20. 两个不同设备上的两个应用程序之间的Android通信
- 21. 多个nodejs应用程序之间的进程间通信
- 22. 如何在两个应用程序之间进行通信?
- 23. 在两个应用程序之间进行通信web
- 24. C++应用程序和web应用程序之间的通信
- 25. Windows应用程序和Android应用程序之间的通信
- 26. iPhone应用程序和Rails应用程序之间的通信
- 27. Web应用程序和Android应用程序之间的通信
- 28. Java应用程序和C++应用程序之间的通信
- 29. iOS应用程序和.NET应用程序之间的通信?
- 30. 如何通过网络在两个WinForm应用程序之间调用函数?
WOW你不只是说' FoxPro'这是一种古老的语言..你是说,WinForm应用程序是一个FoxPro的Windows应用程序..?你打算如何使用WCF来做什么,你会把它变成一个服务应用程序。 – MethodMan
是的,该应用程序是在Foxpro中构建的,但现在我们正在将代码从Foxpro迁移到C#.net 4.0。 –
好吧,我只是确保..我以为我有一个噩梦形式我旧的快船/ FoxPro编码的日子..大声笑 – MethodMan