Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object.
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 42/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Estancado
- Stack tecnológico
- csharp
- Área
- devtools, observability
Línea de trabajo
Comienza en src/Tools/dotnet-counters/CounterMonitor.cs, línea 200, y reproduce en la Visual Studio Package Manager Console la invocación dotnet-counters monitor -n ConsoleApp --counters HatCo.Store del issue. Usa el ejemplo de .NET 8 proporcionado para seguir la ruta de la referencia nula y, después, verifica que la monitorización del contador HatCo.Store ya no termina con una excepción no controlada.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Description
I followed the documentation on learn.microsoft.com:
and have trouble to use the dotnet-counters monitor tool in the visual studio package manger console.
I'm getting an Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object.
PM> dotnet-counters monitor -n ConsoleApp --counters HatCo.Store
dotnet-counters : Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object.
At line:1 char:1
+ dotnet-counters monitor -n ConsoleApp --counters HatCo.Store
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (Unhandled excep...e of an object.:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
at Microsoft.Diagnostics.Tools.Counters.CounterMonitor.Monitor(CancellationToken ct, String counters, Int32 processId, Int32
refreshInterval, String name, String diagnosticPort, Boolean resumeRuntime, Int32 maxHistograms, Int32 maxTimeSeries, TimeSpan duration,
Boolean showDeltas, String dsrouter) in /_/src/Tools/dotnet-counters/CounterMonitor.cs:line 200
at System.CommandLine.Command.<>c__DisplayClass32_0.<<SetAction>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Invocation.InvocationPipeline.InvokeAsync(ParseResult parseResult, CancellationToken cancellationToken)
PM> dotnet-counters --version
9.0.652701+240cb1ce5bc30594c515206764241d7982e384af
I appreciate any help.
Configuration
Start the following source code in .NET 8.0 and run dotnet-counters in Visual Studio 2022 package manager console
using System.Diagnostics.Metrics;
using Microsoft.Extensions.DependencyInjection;
class Program
{
static void Main(string[] arguments)
{
Console.WriteLine("Press any key to exit");
using ServiceProvider serviceProvider = CreateServiceProvider();
var hatCoMetrics = serviceProvider.GetRequiredService<HatCoMetrics>();
Random random = new();
while (!Console.KeyAvailable)
{
// Pretend our store has a transaction, every 100ms, that sells two size 12 red hats, and one size 19 blue hat.
Thread.Sleep(random.Next() % 5000);
hatCoMetrics.HatsSold(random.Next() % 6, "red", 12);
hatCoMetrics.HatsSold(random.Next() % 6, "blue", 19);
}
}
// Setup a new service provider. This example creates the collection explicitly but you might leverage
// a host or some other application setup code to do this as well.
private static ServiceProvider CreateServiceProvider()
{
ServiceCollection serviceCollection = new();
serviceCollection.AddMetrics();
serviceCollection.AddSingleton<HatCoMetrics>();
return serviceCollection.BuildServiceProvider();
}
}
public class HatCoMetrics
{
private readonly Counter<int> _hatsSold;
public HatCoMetrics(IMeterFactory meterFactory)
{
Meter meter = meterFactory.Create("HatCo.Store");
_hatsSold = meter.CreateCounter<int>("hatco.store.hats_sold");
}
public void HatsSold(int quantity, string color, ushort size)
{
if (quantity == 0) return;
_hatsSold.Add(quantity,
new KeyValuePair<string, object?>("product.color", color),
new KeyValuePair<string, object?>("product.size", size)
);
}
}
- Lenguaje dominante
- C++
- Estrellas
- 1.3k
- Forks
- 407
- Merge medio
- 21 h 5 min
- PR fusionados (30 d)
- 78
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de dotnet/diagnostics
-
Fix StackAndOtherTests.script line number verification for .NET 11 and Windows x64Quizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
dotnet/diagnostics#5884 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
dotnet/diagnostics#6225 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
dotnet/diagnostics#6213 ·
Los mantenedores suelen responder en 1 día
-
Isolate SOS hosting from other debugger extensions that use managed codePosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertobug
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
dotnet/diagnostics#6207 ·
Los mantenedores suelen responder en 1 día
-
Known Build Error
Dificultad 4/5 3-5 días Aptitud para principiantes 49/100
dotnet/diagnostics#6190 ·
Los mantenedores suelen responder en 1 día
Todos los issues de dotnet/diagnostics
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
AutoHotkey/AutoHotkey#380 ·
-
documentation
Dificultad 1/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 1 día
-
Lua File: add readWhole()Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 69/100
grumpycoders/pcsx-redux#2667 ·
-
GCC 15.2: -Wcast-qual warning - cast discards const qualifier from pointer target type (H5trace.c)Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
google/tensorstore#305 ·