Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 完成对WCF服务的异步调用时未触发事件处理程序_C#_Wcf - Fatal编程技术网

C# 完成对WCF服务的异步调用时未触发事件处理程序

C# 完成对WCF服务的异步调用时未触发事件处理程序,c#,wcf,C#,Wcf,我最近设法在IIS中运行WCF服务。我创建了一个简单的控制台应用程序来测试这一点。我确实单击了该选项来生成异步调用,当我创建服务客户机的实例时,我有[FunctionName]异步方法和[FunctionName]完成的事件处理程序 问题是事件处理程序从不触发。我设置了它们,并在其中放置断点。不过,断点从不开火。我知道调用了初始异步方法,但没有完成 该服务位于IIS中,已作为服务引用添加到我的项目中 以下是客户端的代码,尽管问题可能并不存在: clt.SubmitEvalCompleted +=

我最近设法在IIS中运行WCF服务。我创建了一个简单的控制台应用程序来测试这一点。我确实单击了该选项来生成异步调用,当我创建服务客户机的实例时,我有[FunctionName]异步方法和[FunctionName]完成的事件处理程序

问题是事件处理程序从不触发。我设置了它们,并在其中放置断点。不过,断点从不开火。我知道调用了初始异步方法,但没有完成

该服务位于IIS中,已作为服务引用添加到我的项目中

以下是客户端的代码,尽管问题可能并不存在:

clt.SubmitEvalCompleted += (o, e) => {
            var sender = o as EvalServiceClient;

            Console.WriteLine("Submit completed");
            sender.GetEvalsAsync();
        };

        clt.GetEvalsCompleted += (o, e) => { 

            var listOfEvals = e.Result;

            foreach (var eval in listOfEvals)
            {
                Console.WriteLine("Eval: " + eval.ID + " comments: " + eval.Comments);
            }
        };

        Eval evale = new Eval { Comments = "Comment", Submitter = "Me" };
        clt.SubmitEval( evale );
        clt.GetEvals();

谢谢你的阅读

只有在调用该方法的异步版本(SubmitEvalAsync、GetEvalsAsync)时才会调用事件。如果调用同步版本,将立即得到结果