Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.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# 在MVC中实现WCF回调_C#_Asp.net Mvc_Wcf_Callback_Wsdualhttpbinding - Fatal编程技术网

C# 在MVC中实现WCF回调

C# 在MVC中实现WCF回调,c#,asp.net-mvc,wcf,callback,wsdualhttpbinding,C#,Asp.net Mvc,Wcf,Callback,Wsdualhttpbinding,我在MVC中成功地实现了一个WCF服务(使用wsDualHttpBinding) 从WCF正确调用“SendResult”函数,并在“Events\u For\u Export\u Result”数组中接收结果。现在我应该将MVC重定向到控制器/视图以显示消息,但我不能在回调函数中调用操作 正如您在下面看到的,我试图使回调类从“Controller”继承,并调用了一个执行“RedirectToAction”的函数,但它不起作用 我做错了什么?是否有方法在void方法中调用操作 public cl

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

从WCF正确调用“SendResult”函数,并在“Events\u For\u Export\u 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)]属性。这样,回调函数必须为void

这是回调接口:

/// <summary>
/// The Callback Interface
/// </summary>
public interface IGPWCFServiceCallback
{
    [OperationContract(IsOneWay = true)]
    void SendResult(Events_For_Export_Result[] arrEvents, string resultMessage);
}
//
///回调接口
/// 
公共接口IGPWCFServiceCallback
{
[运营合同(IsOneWay=true)]
void SendResult(事件用于导出结果[]arEvents,字符串resultMessage);
}

您的控制器类名应以单词controller结尾


看看这个。

谢谢Sousuke,是的,我忘了。我已经改了,但还是不行。它什么也不做。