我有一个WCF服务接口,一个实现合同的类和一个托管winforms应用程序。然后,这将启动连接回WCF服务器的工作进程,然后应该触发事件。客户端工作进程没有任何问题调用方法,然后我希望在Windows窗体应用程序中调用附加的事件处理程序,但这不会发生:
xWCFService xWCFService = new xWCFService();
xWCFService.eventWorkerProcessStart += new EventHandler<WorkerProcessProgressChangedEventArgs>(xWCFService_eventWorkerProcessStart);
xWCFService.eventWorkerProcessStop += new EventHandler<WorkerProcessProgressChangedEventArgs>(xWCFService_eventWorkerProcessStop);
xWCFService.eventWorkerProcessUpdateProgress += new EventHandler<WorkerProcessProgressChangedEventArgs>(xWCFService_eventWorkerProcessUpdateProgress);
xWCFService.eventWorkerProcessError += new EventHandler<WorkerProcessProgressChangedEventArgs>(xWCFService_eventWorkerProcessError);
ServiceHost xServiceHost = new ServiceHost(xWCFService, new Uri(serviceAddress));
xServiceHost.AddServiceEndpoint(typeof(IxWCFServiceContract), new NetTcpBinding(), address);
xServiceHost.Open();
我将Service类的实例传递给servicehost,它是一个单例实例。我感谢任何有关我没有引用正确实例的帮助/见解。
答案 0 :(得分:0)
经过多次阅读后,我注意到我在客户端代码中的错误:
static xWCFService xwcfService = new xWCFService();
....
{
EndpointAddress endPoint = new EndpointAddress(new Uri(string.Format(xWCFServerBaseAddress, address) + address));
Binding binding = new NetTcpBinding();
xChannelFactory = new ChannelFactory<IxWCFServiceChannel>(binding, endPoint);
xChannelFactory.Open();
xServiceChannel = xChannelFactory.CreateChannel();
xServiceChannel.Open();
**xwcfService.WorkerProcessStartedParsing(strGuidClientIdentifier);**
最后一行是我的错误,我通过服务实现类的实例调用服务调用。当我使用xServiceChannel调用服务上的方法时,引发了所有事件。