在WPF应用程序中运行WCF侦听器

问题描述

我们希望能够从服务器与WPF应用程序进行通信。 WPF应用程序中是否可以有WCF侦听器/服务?然后调用此服务以在WPF应用程序中打开屏幕?     

解决方法

           WPF应用程序中是否可以有WCF侦听器/服务 在任意位置创建WCF服务侦听器/服务器非常简单。
var servicehost = new ServiceHost(typeof(SomeService))
servicehost.Open();
一个问题是您必须具有足够的权限才能使主机可见。您可能必须提升您的应用程序,并且绝对必须确保防火墙(软件/硬件)允许流量到达。 该链接似乎涵盖了WCF MSDN示例的网络设置,并且适用于IIS托管以及您的案例(非IIS托管的WCF): http://msdn.microsoft.com/zh-CN/library/ms751527(v=vs.90).aspx 同样,您可能会遇到线程复杂性,尽管在尝试从后台线程更新UI的任何情况下都会遇到这些复杂性。如果对此有疑问,请查看
Dispatcher
: http://msdn.microsoft.com/zh-CN/magazine/cc163328.aspx 之后,由您决定是否创建客户端/服务器设计,以确保在正确的时间创建并侦听服务,在正确的时间断开服务(因为
ServiceHost
IDisposable
),并确保正确处理状态(在案例操作会在您不期望的时候被调用-任何软件中总是存在bug。   然后调用此服务以在WPF应用程序中打开一个屏幕 WPF创建的代码与WinForms中的调用方式大致相同。例如,您仍然可以拨打
new MainWindow().Show()
电话。因此,只需将此类代码添加到您的服务实现中即可。     ,        是的,您可以在WinForms和WFP应用程序中托管WCF服务-MSDN包含一些示例。根据托管服务的方式,您必须以不同方式处理UI交互-在UI和其他线程中托管之间存在差异,因为其他线程无法直接访问UI控件。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...