# .NET Diagnostic Capture

yCrash supports capturing diagnostic artifacts from .NET applications running on Windows Server, specifically applications built on .NET Framework 4.8. This extends the yc-360 script's existing capture capability to .NET runtimes as well.

Capture is initiated and managed using the yc-360 script. For .NET applications, the script internally uses a dedicated .NET utility to collect runtime diagnostics rather than reading them directly itself.

# The .NET Capture Utility

The utility responsible for connecting to a target .NET application and collecting its diagnostics is yc-dot-net.exe. It captures garbage collection data, thread dumps, and heap substitute information, the same categories yCrash already reports for Java applications.

Location

The utility ships as part of the yc-360 package. After extracting yc-360-latest.zip, you'll find yc-dot-net.exe inside the windows directory.

By default, the yc-360 script looks for yc-dot-net.exe in its own directory, so no additional configuration is needed if you keep the extracted package intact. If you move the utility elsewhere, tell the script where to find it using dotnetToolPath:

.\yc -onlyCapture -p 22534 -appRuntime=dotnet -dotnetToolPath="D:\path\to\yc-dot-net.exe"
1

# What This Tool Collects

  • Garbage Collection (GC) data
  • Thread dumps with stack traces
  • Heap substitute information

The reporting experience in the yCrash dashboard is similar to Java based reports, with a couple of differences worth knowing:

  • If the target application is primarily memory intensive, the .NET runtime may suppress stack trace information, and the thread dump report may not be available.
  • If the application is highly thread intensive, garbage collection reports may not be generated or displayed.

Both behaviors are runtime dependent and expected under certain workload patterns, not a sign of a misconfiguration.

# Mandatory Requirement

The yc-360 script must be run with administrative privileges when capturing .NET artifacts. If it isn't run in admin mode, the capture will fail.

# Running a Capture

Once yc-dot-net.exe is in place, capturing .NET diagnostics uses the same yc-360 script commands as any other runtime, using -appRuntime=dotnet to tell the script which capture path to use. See:

  • On-Demand Mode to trigger a single capture manually against a running process.
  • Only Capture Mode to save a capture locally as a zip file instead of uploading it.
  • M3 Mode to continuously monitor a .NET process and capture automatically when early signs of trouble appear.

Each of those pages includes a .NET specific example on the Windows tab.