diff --git a/src/SignalR/clients/csharp/Client/src/HubConnectionBuilderHttpExtensions.cs b/src/SignalR/clients/csharp/Client/src/HubConnectionBuilderHttpExtensions.cs index 6c5001e4958f..8e64c03a5fb9 100644 --- a/src/SignalR/clients/csharp/Client/src/HubConnectionBuilderHttpExtensions.cs +++ b/src/SignalR/clients/csharp/Client/src/HubConnectionBuilderHttpExtensions.cs @@ -157,7 +157,7 @@ private static IHubConnectionBuilder WithUrlCore(this IHubConnectionBuilder hubC private class HttpConnectionOptionsDerivedHttpEndPoint : UriEndPoint { public HttpConnectionOptionsDerivedHttpEndPoint(IOptions httpConnectionOptions) - : base(httpConnectionOptions.Value.Url) + : base(httpConnectionOptions.Value.Url!) { } } diff --git a/src/SignalR/clients/csharp/Http.Connections.Client/src/HttpConnection.cs b/src/SignalR/clients/csharp/Http.Connections.Client/src/HttpConnection.cs index cfd4839ef9df..6bd1cd88fdee 100644 --- a/src/SignalR/clients/csharp/Http.Connections.Client/src/HttpConnection.cs +++ b/src/SignalR/clients/csharp/Http.Connections.Client/src/HttpConnection.cs @@ -46,6 +46,7 @@ public partial class HttpConnection : ConnectionContext, IConnectionInherentKeep private string? _connectionId; private readonly ConnectionLogScope _logScope; private readonly ILoggerFactory _loggerFactory; + private readonly Uri _url; private Func>? _accessTokenProvider; /// @@ -148,6 +149,8 @@ public HttpConnection(HttpConnectionOptions httpConnectionOptions, ILoggerFactor _logger = _loggerFactory.CreateLogger(); _httpConnectionOptions = httpConnectionOptions; + _url = _httpConnectionOptions.Url; + if (!httpConnectionOptions.SkipNegotiation || httpConnectionOptions.Transports != HttpTransportType.WebSockets) { _httpClient = CreateHttpClient(); @@ -303,7 +306,7 @@ private async Task DisposeAsyncCore() private async Task SelectAndStartTransport(TransferFormat transferFormat, CancellationToken cancellationToken) { - var uri = _httpConnectionOptions.Url; + var uri = _url; // Set the initial access token provider back to the original one from options _accessTokenProvider = _httpConnectionOptions.AccessTokenProvider; diff --git a/src/SignalR/clients/csharp/Http.Connections.Client/src/HttpConnectionOptions.cs b/src/SignalR/clients/csharp/Http.Connections.Client/src/HttpConnectionOptions.cs index afd28c1d2d1b..36879c48a0d9 100644 --- a/src/SignalR/clients/csharp/Http.Connections.Client/src/HttpConnectionOptions.cs +++ b/src/SignalR/clients/csharp/Http.Connections.Client/src/HttpConnectionOptions.cs @@ -99,7 +99,7 @@ public CookieContainer Cookies /// /// Gets or sets the URL used to send HTTP requests. /// - public Uri Url { get; set; } = default!; + public Uri? Url { get; set; } /// /// Gets or sets a bitmask combining one or more values that specify what transports the client should use to send HTTP requests. diff --git a/src/SignalR/clients/csharp/Http.Connections.Client/src/PublicAPI.Shipped.txt b/src/SignalR/clients/csharp/Http.Connections.Client/src/PublicAPI.Shipped.txt index 460c8e2b6e70..a75488a55b28 100644 --- a/src/SignalR/clients/csharp/Http.Connections.Client/src/PublicAPI.Shipped.txt +++ b/src/SignalR/clients/csharp/Http.Connections.Client/src/PublicAPI.Shipped.txt @@ -38,7 +38,7 @@ Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.HttpMessageHa Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.HttpMessageHandlerFactory.set -> void Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.Proxy.get -> System.Net.IWebProxy? Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.Proxy.set -> void -Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.Url.get -> System.Uri! +Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.Url.get -> System.Uri? Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.Url.set -> void Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.WebSocketConfiguration.get -> System.Action? Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions.WebSocketConfiguration.set -> void