diff --git a/src/SignalR/clients/csharp/Http.Connections.Client/src/Internal/WebSocketsTransport.cs b/src/SignalR/clients/csharp/Http.Connections.Client/src/Internal/WebSocketsTransport.cs index 905a965841..e41dc35022 100644 --- a/src/SignalR/clients/csharp/Http.Connections.Client/src/Internal/WebSocketsTransport.cs +++ b/src/SignalR/clients/csharp/Http.Connections.Client/src/Internal/WebSocketsTransport.cs @@ -36,8 +36,14 @@ namespace Microsoft.AspNetCore.Http.Connections.Client.Internal { _webSocket = new ClientWebSocket(); - // Issue in ClientWebSocket prevents user-agent being set - https://github.com/dotnet/corefx/issues/26627 - //_webSocket.Options.SetRequestHeader("User-Agent", Constants.UserAgentHeader.ToString()); + // Full Framework will throw when trying to set the User-Agent header + // So avoid setting it in netstandard2.0 and only set it in netstandard2.1 and higher +#if !NETSTANDARD2_0 + _webSocket.Options.SetRequestHeader("User-Agent", Constants.UserAgentHeader.ToString()); +#else + // Set an alternative user agent header on Full framework + _webSocket.Options.SetRequestHeader("X-SignalR-User-Agent", Constants.UserAgentHeader.ToString()); +#endif if (httpConnectionOptions != null) { diff --git a/src/SignalR/server/SignalR/test/HubConnectionHandlerTestUtils/Hubs.cs b/src/SignalR/server/SignalR/test/HubConnectionHandlerTestUtils/Hubs.cs index 22ff66f1b8..0de55bacef 100644 --- a/src/SignalR/server/SignalR/test/HubConnectionHandlerTestUtils/Hubs.cs +++ b/src/SignalR/server/SignalR/test/HubConnectionHandlerTestUtils/Hubs.cs @@ -182,7 +182,7 @@ namespace Microsoft.AspNetCore.SignalR.Tests public Task ProtocolError() { - return Clients.Caller.SendAsync("Send", new string('x', 3000), new SelfRef()); + return Clients.Caller.SendAsync("Send", new SelfRef()); } public void InvalidArgument(CancellationToken token) @@ -196,7 +196,7 @@ namespace Microsoft.AspNetCore.SignalR.Tests Self = this; } - public SelfRef Self; + public SelfRef Self { get; set; } } public async Task StreamingConcat(ChannelReader source) diff --git a/src/SignalR/server/SignalR/test/HubConnectionHandlerTests.cs b/src/SignalR/server/SignalR/test/HubConnectionHandlerTests.cs index 7ea759cba3..d8da665a50 100644 --- a/src/SignalR/server/SignalR/test/HubConnectionHandlerTests.cs +++ b/src/SignalR/server/SignalR/test/HubConnectionHandlerTests.cs @@ -3210,7 +3210,7 @@ namespace Microsoft.AspNetCore.SignalR.Tests } } - [Fact(Skip = "Object not supported yet")] + [Fact] public async Task UploadStreamedObjects() { var serviceProvider = HubConnectionHandlerTestUtils.CreateServiceProvider(); @@ -3274,7 +3274,7 @@ namespace Microsoft.AspNetCore.SignalR.Tests } } - [Fact(Skip = "Cyclic parsing is not supported yet")] + [Fact] public async Task ConnectionAbortedIfSendFailsWithProtocolError() { using (StartVerifiableLog()) @@ -3290,8 +3290,6 @@ namespace Microsoft.AspNetCore.SignalR.Tests var connectionHandlerTask = await client.ConnectAsync(connectionHandler).OrTimeout(); await client.SendInvocationAsync(nameof(MethodHub.ProtocolError)).OrTimeout(); - - await client.Connected.OrTimeout(); await connectionHandlerTask.OrTimeout(); } } diff --git a/src/SignalR/server/SignalR/test/WebSocketsTransportTests.cs b/src/SignalR/server/SignalR/test/WebSocketsTransportTests.cs index 1a7634518b..70b985851f 100644 --- a/src/SignalR/server/SignalR/test/WebSocketsTransportTests.cs +++ b/src/SignalR/server/SignalR/test/WebSocketsTransportTests.cs @@ -62,7 +62,7 @@ namespace Microsoft.AspNetCore.SignalR.Tests } } - [ConditionalFact(Skip = "Issue in ClientWebSocket prevents user-agent being set - https://github.com/dotnet/corefx/issues/26627")] + [ConditionalFact] [WebSocketsSupportedCondition] public async Task WebSocketsTransportSendsUserAgent() { @@ -86,7 +86,10 @@ namespace Microsoft.AspNetCore.SignalR.Tests .Assembly .GetCustomAttribute(); - Assert.Equal("Microsoft.AspNetCore.Http.Connections.Client/" + assemblyVersion.InformationalVersion, userAgent); + var majorVersion = typeof(HttpConnection).Assembly.GetName().Version.Major; + var minorVersion = typeof(HttpConnection).Assembly.GetName().Version.Minor; + + Assert.StartsWith($"Microsoft SignalR/{majorVersion}.{minorVersion} ({assemblyVersion.InformationalVersion}; ", userAgent); } }