C# 如何配置信号器以允许ASP.NET MVC应用程序与Windows服务通信?

C# 如何配置信号器以允许ASP.NET MVC应用程序与Windows服务通信?,c#,windows,asp.net-mvc-4,signalr,C#,Windows,Asp.net Mvc 4,Signalr,我有一个信号集线器,我想用它将消息从Windows服务发送到ASP.NET MVC应用程序。我正在为此使用SqlServer背板,我可以通过SMS看到表已经创建,行正在通过Windows服务插入。问题是没有调用客户端方法 我想知道问题出在哪里,因为我已经将服务和web应用程序配置为使用相同的背板(通过连接字符串)。到目前为止,我已经尝试在我的hub上调用一个静态方法(它反过来使用hubContext向客户机发送消息),在我使用调试器逐步完成代码时调用该方法,但是在浏览器中,什么也没有发生。我还尝

我有一个信号集线器,我想用它将消息从Windows服务发送到ASP.NET MVC应用程序。我正在为此使用SqlServer背板,我可以通过SMS看到表已经创建,行正在通过Windows服务插入。问题是没有调用客户端方法

我想知道问题出在哪里,因为我已经将服务和web应用程序配置为使用相同的背板(通过连接字符串)。到目前为止,我已经尝试在我的hub上调用一个静态方法(它反过来使用hubContext向客户机发送消息),在我使用调试器逐步完成代码时调用该方法,但是在浏览器中,什么也没有发生。我还尝试在windows服务本身中创建一个中心上下文,并通过该中心发送消息,但这也不起作用

以下是相关的代码位: ASP.NET MVC信号器配置:

    public void Configuration(IAppBuilder app)
    {
            GlobalHost.DependencyResolver.UseSqlServer(ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString);
            app.MapSignalR();
            GlobalHost.DependencyResolver.Register(typeof(JsonSerializer), () => s_jsonSerializerFactory.Value);
            UnitsHub.NotifyWorker.Start();
    }
Windows服务配置:

public void Configuration(IAppBuilder app)
{
        app.UseCors(CorsOptions.AllowAll);
        GlobalHost.DependencyResolver.UseSqlServer(ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString);
        app.MapSignalR();
}
客户端方法:

constructor(sr: SignalR, jobId: any) {

    sr.jobsHub.client.jobStarted = this.jobStarted.bind(this);
    sr.jobsHub.client.jobCompleted = this.jobCompleted.bind(this);

    var id = 1044;
    var jId = id.toString();

    sr.jobsHub.server.trackJob(jId, true);
}

jobStarted() {
    console.log("Job started!");
}

jobCompleted() {
    console.log("job completed");
}
信号集线器方法:

public static void JobStarted(string jobId)
    {
        var hubContext = GlobalHost.ConnectionManager.GetHubContext<JobsHub>();
        hubContext.Clients.Group(jobId).jobStarted();
    }

编辑:我已经启用了跟踪,但它似乎没有提供问题可能是什么的线索。每次对db运行查询时,它只会说“未收到任何记录”。

背板的内容存在可伸缩性问题,没有其他问题,因此安装不需要工作。在Sql中看到记录而在客户端中看不到调用这一事实与此无关。您的客户端连接到服务器的方式可能有错误,您检查了吗?是的,您是对的,问题与连接到服务器的客户端代码有关,但现在一切正常。
JobsHub.JobStarted(runningJob.Id.ToString());