我正在使用 Blazor WebAssembly 并尝试使用 Microsoft.AspNet.SignalR.Client 连接到 SignalR 服务器(ASP.NET SignalR,而不是 ASP.NET Core SignalR)。代码如下所示:
var hubConnection = new HubConnection(url, queryString);
await hubConnection.Start();
我得到以下异常:
System.PlatformNotSupportedException: Property Credentials is not supported. blazor.webassembly.js:1:37722
at System.Net.Http.HttpClientHandler.set_Credentials (System.Net.ICredentials value) <0x3c223e0 + 0x0000c> in <filename unknown>:0 blazor.webassembly.js:1:37722
at Microsoft.AspNet.SignalR.Client.Http.DefaultHttpHandler..ctor (Microsoft.AspNet.SignalR.Client.IConnection connection) <0x3c1f850 + 0x00040> in <filename unknown>:0 blazor.webassembly.js:1:37722
at Microsoft.AspNet.SignalR.Client.Http.DefaultHttpClient.CreateHandler () <0x3c1f000 + 0x00006> in <filename unknown>:0 blazor.webassembly.js:1:37722
at Microsoft.AspNet.SignalR.Client.Http.DefaultHttpClient.Initialize (Microsoft.AspNet.SignalR.Client.IConnection connection) <0x3c1eca8 + 0x00010> in <filename unknown>:0 blazor.webassembly.js:1:37722
at Microsoft.AspNet.SignalR.Client.Transports.TransportHelper.GetNegotiationResponse (Microsoft.AspNet.SignalR.Client.Http.IHttpClient httpClient, Microsoft.AspNet.SignalR.Client.IConnection connection, System.String connectionData) <0x3c1d5c0 + 0x0004c> in <filename unknown>:0 blazor.webassembly.js:1:37722
at Microsoft.AspNet.SignalR.Client.Transports.AutoTransport.GetNegotiateResponse (Microsoft.AspNet.SignalR.Client.IConnection connection, System.String connectionData) <0x3c1cc58 + 0x0001e> in <filename unknown>:0 blazor.webassembly.js:1:37722
at Microsoft.AspNet.SignalR.Client.Transports.AutoTransport.Negotiate (Microsoft.AspNet.SignalR.Client.IConnection connection, System.String connectionData) <0x3c1cb58 + 0x0000e> in <filename unknown>:0 blazor.webassembly.js:1:37722
at Microsoft.AspNet.SignalR.Client.Connection+<>c__DisplayClass153_0.<Negotiate>g__StartNegotiation|1 () <0x3c1c9b0 + 0x0001a> in <filename unknown>:0 blazor.webassembly.js:1:37722
at Microsoft.AspNet.SignalR.Client.Connection.Negotiate (Microsoft.AspNet.SignalR.Client.Transports.IClientTransport transport) <0x39ffec0 + 0x0003c> in <filename unknown>:0 blazor.webassembly.js:1:37722
at Microsoft.AspNet.SignalR.Client.Connection.Start (Microsoft.AspNet.SignalR.Client.Transports.IClientTransport transport) <0x39e6f10 + 0x000e6> in <filename unknown>:0 blazor.webassembly.js:1:37722
at Microsoft.AspNet.SignalR.Client.Connection.Start (Microsoft.AspNet.SignalR.Client.Http.IHttpClient httpClient) <0x39da2a8 + 0x0000e> in <filename unknown>:0 blazor.webassembly.js:1:37722
at Microsoft.AspNet.SignalR.Client.Connection.Start () <0x39da1e8 + 0x0000c> in <filename unknown>:0
我没有设置 的Credentials
属性hubConnection
,它是null
. 据我从错误消息中可以看出,客户端尝试设置Credentials
属性,而 Blazor 不支持此设置。我能做些什么来避免这种情况?我不需要使用Credentials
,我在查询字符串中传递了所有服务器需要。相同的代码在控制台应用程序中运行良好。