需求:和产品进行通讯,和用户有交互操作,并将最后结果传送个DB
成都创新互联专注于农安网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供农安营销型网站建设,农安网站制作、农安网页设计、农安网站官网定制、微信小程序开发服务,打造农安网络公司原创品牌,更为您提供农安网站排名全网营销落地服务。基本思路:
1. 用WPF客户端程序和产品进行通讯,获取必要的结果。
2. WPF客户端程序里调用WCF 的Proxy, 将结果传送个WCF Service。
3. 另外一个程序通过另一个WCF Proxy获取结果,并传送到DB
Control System(Service) <--------------------> WCF Service (Host in Windows Service) <-----------------------> UI Application
| | (Comunication)
WCF Client(Proxy, GetResult) Device.
|
Upload to DB
基本实现:
1. 创建WCF Service Library, 实现 WCF Service 的接口。
2. 创建Windows Service, 并将WCF Service Host 到 Windows Service.
3. 创建WPF UI 程序,实现和Device的通讯。
问题和Debug:
1. Service出现问题的时候,可以用EventViewer来协助Debug。
参考:
1. http://blog.csdn.net/hebeijg/article/details/6161228
2. http://www.codeproject.com/Articles/38160/WCF-Service-Library-with-Windows-Service-Hosting
--------------------
Debug WCF 通讯的时候,应该采用 SvcTraceViewer.exe 工具
https://docs.microsoft.com/en-us/dotnet/framework/wcf/service-trace-viewer-tool-svctraceviewer-exe
三步:
1. 在 Host 端的Config文件里面添加
2. 运行WCF 程序 (Host, Client)进行通讯。
3. 用SvcTraceViewer工具打开生成的svclog文件。就可以定位到错误发生行。
--------------
另外还可以通过在ServiceHost端增加internalerror 来得到准确的错误。
// Enable "IncludeExceptionDetailInFaults". ServiceDebugBehavior debug = serviceHost.Description.Behaviors.Find();
// if not found - add behavior with setting turned on if (debug == null)
{
serviceHost.Description.Behaviors.Add(
new ServiceDebugBehavior() { IncludeExceptionDetailInFaults = true });
}
else
{
// make sure setting is turned ON if (!debug.IncludeExceptionDetailInFaults)
{
debug.IncludeExceptionDetailInFaults= true;
}
}