Signalr客户端是一个运行在.net框架3.5上的windows服务

本文关键字:框架 net 上的 服务 windows 运行 客户端 一个 Signalr | 更新日期: 2023-09-27 18:12:42

我必须从我的windows服务向我的信号器集线器发送消息。我的一些windows服务运行在.net framework 3.5上。我的第一步是添加这个包:

https://www.nuget.org/packages/Nivot.SignalR.Client.Net35/

以下是我针对这个场景的全部测试代码:

public partial class WinSer35 : ServiceBase
{
    private HubConnection hubConnection;
    private IHubProxy priceProxy;
    public WinSer35()
    {
        InitializeComponent();
    }
    protected override void OnStart(string[] args)
    {
        hubConnection = new HubConnection("http://localhost:8080/signalr", useDefaultUrl: false);
        priceProxy = hubConnection.CreateHubProxy("PriceHub");
        hubConnection.Start().Wait();
        TestPrice testPrice = new TestPrice() { Id = 1, Buy = 1.2345, Sell = 9.8765, Symbol = "EURUSD" };
        priceProxy.Invoke("NotifySubscribers", testPrice).Wait();
    }
    protected override void OnStop()
    {
    }
}

在线:

hubConnection.Start((.Wait((;

我得到以下异常:

无法启动服务。System.AggregateException:AggregateException_ctor_DefaultMessage--->System.Net.WebException:远程服务器返回错误:(400(错误请求。位于System.Net.HttpWebRequest.EndGetResponse(IAsyncResult-asyncResult(位于Microsoft.AspNet.SignalR.Client.Http.HttpHelper。<>c_DisplayClass2.b_0(IAsyncResult ar(位于System.Threading.Tasks.TaskFactory 1.FromAsyncCoreLogic(IAsyncResult iar, Func 2 endMethod,TaskCompletionSource`1 tcs(---内部异常堆栈跟踪结束---在System.Threading.Tasks.Task.Wait(Int32毫秒超时,CancellationToken取消令牌(位于System.Threading.Tasks.Task.Wet((在c:''Users''anilliska''Desktop''WindowsFormsApplication1''WinSer35''WinSer35.cs:line 28中的WinSer35.WinSer35.OnStart(String[]args(位于System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(对象状态(--->(内部异常#0(System.Net.WebException:远程服务器返回错误:(400(错误请求。在System.Net.HttpWebRequest…

在.net framework 4.5上运行并引用默认Microsoft.AspNet.SignalR.Client dll的相同代码段工作正常。

你有什么建议吗?想想看,我还有一些其他依赖项,我无法在高于.net framework 3.5的版本中编译我的windows服务。

Signalr客户端是一个运行在.net框架3.5上的windows服务

如果它真的是一个3.5库,它甚至不应该有这些方法,因为这是4.5代码