Обратите внимание, что мы используем внедренный контекстный концентратор для отправки данных всем клиентам SignalR: _hub.Clients.All.SendAsync (...)

могу вызвать метод SignalR Core Hub из контроллера?
Я использую ASP.NET Core 2.0 с Microsoft.AspNetCore.SignalR (1.0.0-alpha2-final).

У меня есть служба Windows, которая связывается с Excel, SolidEdge ... Когда операция завершена, отправьте запрос на мой контроллер в приложении ASP.NET Core. Теперь мне нужно сообщить всем клиентам, подключенным к серверу с SignalR, что внешняя программа выполнила какое-то задание.
Я не могу изменить способ работы оконного сервиса. (Не удается подключиться к SignalR из оконного сервиса).
Я нашел много решений для старого SignalR (GlobalHost.ConnectionManager.GetHubContext), но многое изменилось, и эти решения больше не работают.

Мой контроллер:

[Route("API/vardesigncomm")]
public class VarDesignCommController : Controller
{
    [HttpPut("ProcessVarDesignCommResponse/{id}")]
    public async Task<IActionResult> ProcessVarDesignCommResponse(int id)
    {
        //call method TaskCompleted in Hub !!!! How?

        return new JsonResult(true);
    }
}

Мой хаб:

public class VarDesignHub : Hub
{
    public async Task TaskCompleted(int id)
    {
        await Clients.All.InvokeAsync("Completed", id);
    }
}

Ответы на вопрос(1)

Ваш ответ на вопрос