Реализация обратного вызова WCF в MVC
Я успешно внедрил службу WCF (с wsDualHttpBinding) в MVC.
Функция "SendResult" правильно вызывается из WCF и получает результаты в массиве "Events_For_Export_Result". Теперь я должен перенаправить MVC в контроллер / представление, чтобы показать сообщение, но я не могу вызвать действие в функции обратного вызова.
Как вы можете видеть ниже, я попытался сделать мой класс обратного вызова наследуемым от "Controller" и вызвал функцию, которая выполняет "RedirectToAction", но это не работает.
Что я делаю не так? Есть ли способ вызвать действие в пустом методе?
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 ответ
Ваше имя класса контроллера должно заканчиваться словом Controller
Посмотри на этот вопрос.