在MVC中实现WCF回调

时间:2015-12-24 08:41:32

标签: c# asp.net-mvc wcf callback wsdualhttpbinding

我在MVC中成功实现了一个WCF服务(使用wsDualHttpBinding)。

" SendResult"从WCF正确调用函数并在" Events_For_Export_Result"中接收结果。阵列。现在我应该将MVC重定向到控制器/视图以显示消息,但我无法在回调函数中调用操作。

正如您在下面看到的,我试图让我的回调类继承自" Controller"并调用了一个执行" RedirectToAction"的函数,但它不起作用。

我做错了什么?有没有办法在void方法中调用一个动作?

public class GPWCFServiceCallBackController : Controller, IGPWCFServiceCallback
{

    public void SendResult(GPWCFService.Events_For_Export_Result[] arrEvents, string resultMessage)
    {
        ShowResult(arrEvents, resultMessage);
    }

    public ActionResult ShowResult(GPWCFService.Events_For_Export_Result[] arrEvents, string resultMessage)
    {
        return RedirectToAction("Index", "Home");

    }

} 

我认为这与wsDualHttpBinding的性质有关。实际上,我无法更改函数的返回类型,因为我必须指定[OperationContract(IsOneWay = true)]属性。这样,回调函数必须是无效的。

这是回调界面:

/// <summary>
/// The Callback Interface
/// </summary>
public interface IGPWCFServiceCallback
{
    [OperationContract(IsOneWay = true)]
    void SendResult(Events_For_Export_Result[] arrEvents, string resultMessage);
}

1 个答案:

答案 0 :(得分:0)

您的控制器类名称应以word Controller

结尾

看看这个question