【问题标题】:Blazor SignalR Error - Property Credentials is not supportedBlazor SignalR 错误 - 不支持属性凭据
【发布时间】:2020-06-12 08:56:17
【问题描述】:

我正在使用 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 

我没有设置hubConnectionCredentials 属性,它是null。据我从错误消息中得知,客户端尝试设置 Credentials 属性,而 Blazor 不支持此设置。我能做些什么来避免这种情况?我不需要使用Credentials,我在查询字符串中传递了所有服务器需求。相同的代码在控制台应用程序中也能正常工作。

【问题讨论】:

    标签: c# signalr blazor signalr.client blazor-webassembly


    【解决方案1】:

    我设法克服了实现我自己的HttpClient 并没有设置Credentials 的问题,但我仍然遇到与运行时不兼容相关的其他错误。 Microsoft.AspNet.SignalR.Client 似乎无法在 Blazor/Mono 中正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-06
      • 1970-01-01
      • 2017-12-20
      • 1970-01-01
      • 2013-04-23
      • 2020-06-28
      相关资源
      最近更新 更多