【问题标题】:Event handlers not firing for completion of asynch call to WCF service未触发事件处理程序以完成对 WCF 服务的异步调用
【发布时间】:2011-11-23 23:13:20
【问题描述】:

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

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

该服务位于 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();

感谢阅读!

【问题讨论】:

    标签: c# wcf


    【解决方案1】:

    仅当您调用方法的异步版本(SubmitEvalAsync、GetEvalsAsync)时才会调用事件。如果你调用同步版本,你会马上得到结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-23
      • 2023-03-25
      • 2019-01-13
      • 2020-11-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多