diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Diagnostics/SqlClientMetrics.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Diagnostics/SqlClientMetrics.cs
index f62c65b122..e38a35542c 100644
--- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Diagnostics/SqlClientMetrics.cs
+++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Diagnostics/SqlClientMetrics.cs
@@ -92,7 +92,7 @@ internal sealed partial class SqlClientMetrics
private string? _instanceName;
#endif
- public SqlClientMetrics(SqlClientEventSource eventSource)
+ public SqlClientMetrics(SqlClientEventSource eventSource, bool enableMetrics)
{
_eventSource = eventSource;
@@ -100,6 +100,11 @@ public SqlClientMetrics(SqlClientEventSource eventSource)
// On .NET Framework, metrics are exposed as performance counters and are always enabled.
// On .NET Core, metrics are exposed as EventCounters, and require explicit enablement.
EnablePerformanceCounters();
+#else
+ if (enableMetrics)
+ {
+ EnableEventCounters();
+ }
#endif
}
diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlClientEventSource.cs b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlClientEventSource.cs
index 75f87ea13c..4988a4f4da 100644
--- a/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlClientEventSource.cs
+++ b/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlClientEventSource.cs
@@ -15,11 +15,13 @@ namespace Microsoft.Data.SqlClient
[EventSource(Name = "Microsoft.Data.SqlClient.EventSource")]
internal partial class SqlClientEventSource : EventSource
{
+ private static bool s_initialMetricsEnabled = false;
+
// Defines the singleton instance for the Resources ETW provider
public static readonly SqlClientEventSource Log = new();
// Provides access to metrics.
- public static readonly SqlClientMetrics Metrics = new SqlClientMetrics(Log);
+ public static readonly SqlClientMetrics Metrics = new SqlClientMetrics(Log, s_initialMetricsEnabled);
private SqlClientEventSource() { }
@@ -33,7 +35,14 @@ protected override void OnEventCommand(EventCommandEventArgs command)
if (command.Command == EventCommand.Enable)
{
- Metrics.EnableEventCounters();
+ if (Metrics == null)
+ {
+ s_initialMetricsEnabled = true;
+ }
+ else
+ {
+ Metrics.EnableEventCounters();
+ }
}
}
#endif
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.csproj b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.csproj
index d1487d9012..0ef316f6db 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.csproj
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.csproj
@@ -9,9 +9,7 @@
$(BinFolder)$(Configuration).$(Platform)\$(AssemblyName)
-
-
-
+
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.csproj b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.csproj
index 8e1719e8d3..dbd175305d 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.csproj
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.csproj
@@ -9,9 +9,7 @@
$(BinFolder)$(Configuration).$(Platform)\$(AssemblyName)
-
-
-
+
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.csproj b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.csproj
index ccd0d626d9..ccd8342e17 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.csproj
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.csproj
@@ -9,9 +9,7 @@
$(BinFolder)$(Configuration).$(Platform)\$(AssemblyName)
-
-
-
+
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.csproj b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.csproj
index 1a7717e844..c1031bbaac 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.csproj
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.csproj
@@ -9,9 +9,7 @@
$(BinFolder)$(Configuration).$(Platform)\$(AssemblyName)
-
-
-
+