【发布时间】:2010-12-24 00:40:51
【问题描述】:
感谢 Kent Boogart 的回答,现在一切正常。非常感谢您的所有回答!
你好,
我需要在 WPF gui 中自行托管 WCF 服务。我正在使用 ServiceHost。
但我仍然无法解决问题。
首先我托管一个服务:
ServiceHost host;
Service.ISORClient service = new Service.SORClient();
//The next are in window constructor
host = new ServiceHost(service);
host.Open();
我想在按下按钮时刷新数据,所以:
dataGrid1.ItemsSource = service.GetPatients();
它有效,但只有一次。如果我尝试多次刷新它,它就不起作用了。
这是我的 WCF 服务声明:
[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)]
public class SORClient : ISORClient
... and all the methods come here...
奇怪的是,当我从客户端应用程序连接时。我可以得到所有的数据,一切都是正确的。我只是无法将数据导入 GUI(好吧,我只能获取一次)。
非常感谢您!
【问题讨论】:
-
尝试分离关注点。我不认为 WPF 与它有任何关系,但是......也许从这个简单的控制台框架开始会有所帮助。 codeproject.com/KB/WCF/generic_wcf_host.aspx
-
抛开问题我想知道您为什么要在客户端应用程序中托管 WCF?您正在有效地构建胖客户端,那么为什么要在服务中托管应用程序业务逻辑的开销?
-
你说它不起作用是什么意思?它会抛出异常、不返回数据还是返回相同的数据?你能在
GetPatients()方法中添加断点,并确保在从WPF客户端调用时它会成功吗?
标签: c# wpf wcf self-hosting