事件不会受到WCF服务实施的影响

时间:2012-07-13 23:30:41

标签: c# wcf event-handling servicecontract

我有一个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,它是一个单例实例。我感谢任何有关我没有引用正确实例的帮助/见解。

1 个答案:

答案 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调用服务上的方法时,引发了所有事件。