【发布时间】:2016-11-15 15:45:10
【问题描述】:
我在 WindowsServiceHost 上托管了 WCF 服务(用于通信 WindowsFormsApp WindowsServiceHost)
有没有办法从 WCFService 获取数据到 WindowsServiceHost? 并以其他方式(将数据从 WindowsServiceHost 设置为 WCFService)
这就是我所做的:
- 我做了一个 WCF 服务库项目,实现了接口,契约等。
- 我创建了新项目 - Windows 服务并添加了对 #1 和 System.ServiceModel 项目的引用
-
已配置的 app.conf:
<system.serviceModel> <bindings> <netTcpBinding> <binding name="netTcp"> <security mode="Message"> </security> </binding> </netTcpBinding> </bindings> <behaviors> <serviceBehaviors> <behavior name="mexBehavior"> <serviceMetadata httpGetEnabled="true"/> </behavior> </serviceBehaviors> </behaviors> <services> <service behaviorConfiguration="mexBehavior" name="KSPDJOBWinWCFService.KSPDJOBWinWCFService" > <endpoint address="KSPDJOBWinWCFService" binding="netTcpBinding" contract="KSPDJOBWinWCFService.IKSPDJOBWinWCFService" bindingConfiguration="netTcp" /> <host> <baseAddresses> <add baseAddress="http://localhost:8079"/> <add baseAddress="net.tcp://localhost:8090"/> </baseAddresses> </host> </service> </services> -
我在 Windows 服务的 OnStart 方法中托管了 WCF
protected override void OnStart(string[] args) { host = new ServiceHost(typeof(KSPDJOBWinWCFService.KSPDJOBWinWCFService)); host.Open(); } 使用 WinformsClient 应用程序(作为 WCF 客户端)添加了新解决方案并测试了通信 - 一切正常。
问题是当我从 WinFormsClient 向 WCF 服务发送一个值,并希望从 Windows 服务应用程序中读取它时
感谢您的帮助。
【问题讨论】:
-
您是否将 WCF 服务托管在您已实现的 Windows 服务(由
ServiceBase派生的另一个服务)中?在您要交换数据的那些服务之间,是否正确?如果是这样,您能否粘贴您的 WCF 服务托管方式的代码? -
嗨,马克我回答了你