Token导航 LogoToken导航TokenDH.com
研究检索敏感数据github未标认证来源可访问许可证需确认审计通过

sentry-dotnet-sdkSentry dotnet SDK 搜索

Agent Skill

sentry-dotnet-sdk 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

14,751

周安装

591

GitHub Stars

156

下载量

4,775
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:sentry-dotnet-sdk(Sentry dotnet SDK 搜索)
来源仓库:https://github.com/getsentry/sentry-for-ai
仓库路径:skills/sentry-dotnet-sdk
安装命令:
npx skills add https://github.com/getsentry/sentry-for-ai --skill sentry-dotnet-sdk
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/getsentry/sentry-for-ai --skill sentry-dotnet-sdk

简介

用于查找、检索和筛选 Sentry dotnet SDK 相关信息。

  • 适合在需要快速定位技术文档或示例时调用。适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。
  • 通过 GitHub 安装,配合搜索指令获取目标内容。
  • 需确认是否依赖外部 API 及数据访问权限。
  • sentry-dotnet-sdk 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

All Skills > SDK Setup >.NET SDK

Sentry.NET SDK

Opinionated wizard that scans your.NET project and guides you through complete Sentry setup: error monitoring, distributed tracing, profiling, structured logging, and cron monitoring across all major.NET frameworks.

Invoke This Skill When

  • User asks to "add Sentry to.NET", "set up Sentry in C#", or "install Sentry for ASP.NET Core"
  • User wants error monitoring, tracing, profiling, logging, or crons for a.NET app
  • User mentions SentrySdk.Init, UseSentry, Sentry.AspNetCore, or Sentry.Maui
  • User wants to capture unhandled exceptions in WPF, WinForms, MAUI, or Azure Functions
  • User asks about SentryOptions, BeforeSend, TracesSampleRate, or symbol upload
Note: SDK version and APIs below reflect Sentry NuGet packages ≥6.1.0. Always verify against docs.sentry.io/platforms/dotnet/ before implementing.

Phase 1: Detect

Run these commands to understand the project before making any recommendations:

# Detect framework type — find all .csproj files
find . -name "*.csproj" | head -20

# Detect framework targets
grep -r "TargetFramework\|Project Sdk" --include="*.csproj" .

# Check for existing Sentry packages
grep -r "Sentry" --include="*.csproj" . | grep "PackageReference"

# Check startup files
ls Program.cs src/Program.cs App.xaml.cs MauiProgram.cs 2>/dev/null

# Check for appsettings
ls appsettings.json src/appsettings.json 2>/dev/null

# Check for logging libraries
grep -r "Serilog\|NLog\|log4net" --include="*.csproj" .

# Check for companion frontend
ls ../frontend ../client ../web 2>/dev/null
cat ../package.json 2>/dev/null | grep -E '"next"|"react"|"vue"' | head -3

What to determine:

QuestionImpact
Framework type?Determines correct package and init pattern
.NET version?.NET 8+ recommended;.NET Framework 4.6.2+ supported
Sentry already installed?Skip install, go to feature config
Logging library (Serilog, NLog)?Recommend matching Sentry sink/target
Async/hosted app (ASP.NET Core)?UseSentry() on WebHost; no IsGlobalModeEnabled needed
Desktop app (WPF, WinForms, WinUI)?Must set IsGlobalModeEnabled = true
Serverless (Azure Functions, Lambda)?Must set FlushOnCompletedRequest = true
Frontend directory found?Trigger Phase 4 cross-link

Framework → Package mapping:

DetectedPackage to install
Sdk="Microsoft.NET.Sdk.Web" (ASP.NET Core)Sentry.AspNetCore
App.xaml.cs with Application baseSentry (WPF)
[STAThread] in Program.csSentry (WinForms)
MauiProgram.csSentry.Maui
WebAssemblyHostBuilderSentry.AspNetCore.Blazor.WebAssembly
FunctionsStartupSentry.Extensions.Logging + Sentry.OpenTelemetry
HttpApplication / Global.asaxSentry.AspNet
Generic host / Worker ServiceSentry.Extensions.Logging

Phase 2: Recommend

Present a concrete recommendation based on what you found. Lead with a proposal — don't ask open-ended questions.

Recommended (core coverage):

  • Error Monitoring — always; captures unhandled exceptions, structured captures, scope enrichment
  • Tracing — always for ASP.NET Core and hosted apps; auto-instruments HTTP requests and EF Core queries
  • Logging — recommended for all apps; routes ILogger / Serilog / NLog entries to Sentry as breadcrumbs and events

Optional (enhanced observability):

  • Profiling — CPU profiling; recommend for performance-critical services running on.NET 6+
  • Metrics — counters, gauges, distributions linked to traces; recommend for apps that need custom business metrics
  • Crons — detect missed/failed scheduled jobs; recommend when Hangfire, Quartz.NET, or scheduled endpoints detected

Recommendation logic:

FeatureRecommend when...
Error MonitoringAlways — non-negotiable baseline
TracingAlways for ASP.NET Core — request traces, EF Core spans, HttpClient spans are high-value
LoggingApp uses ILogger<T>, Serilog, NLog, or log4net
ProfilingPerformance-critical service on.NET 6+
MetricsApp needs custom business metrics (request counts, queue depths, response times)
CronsApp uses Hangfire, Quartz.NET, or scheduled Azure Functions

Propose: *"I recommend setting up Error Monitoring + Tracing + Logging. Want me to also add Profiling or Crons?"*


Phase 3: Guide

Option 1: Wizard (Recommended)

You need to run this yourself — the wizard opens a browser for login and requires interactive input that the agent can't handle. Copy-paste into your terminal: `` npx @sentry/wizard@latest -i dotnet `` It handles login, org/project selection, DSN configuration, and MSBuild symbol upload setup for readable stack traces in production. Once it finishes, come back and skip to Verification.

If the user skips the wizard, proceed with Option 2 (Manual Setup) below.


Option 2: Manual Setup

Install the right package

# ASP.NET Core
dotnet add package Sentry.AspNetCore -v 6.1.0

# WPF or WinForms or Console
dotnet add package Sentry -v 6.1.0

# .NET MAUI
dotnet add package Sentry.Maui -v 6.1.0

# Blazor WebAssembly
dotnet add package Sentry.AspNetCore.Blazor.WebAssembly -v 6.1.0

# Azure Functions (Isolated Worker)
dotnet add package Sentry.Extensions.Logging -v 6.1.0
dotnet add package Sentry.OpenTelemetry -v 6.1.0

# Classic ASP.NET (System.Web / .NET Framework)
dotnet add package Sentry.AspNet -v 6.1.0

ASP.NET Core — Program.cs

var builder = WebApplication.CreateBuilder(args);

builder.WebHost.UseSentry(options =>
{
    options.Dsn = Environment.GetEnvironmentVariable("SENTRY_DSN")
                  ?? "___YOUR_DSN___";
    options.Debug = true;                         // disable in production
    options.SendDefaultPii = true;                // captures user IP, name, email
    options.MaxRequestBodySize = RequestSize.Always;
    options.MinimumBreadcrumbLevel = LogLevel.Debug;
    options.MinimumEventLevel = LogLevel.Warning;
    options.TracesSampleRate = 1.0;               // tune to 0.1–0.2 in production
    options.SetBeforeSend((@event, hint) =>
    {
        @event.ServerName = null;                 // scrub hostname from events
        return @event;
    });
});

var app = builder.Build();
app.Run();

appsettings.json (alternative configuration):

{
  "Sentry": {
    "Dsn": "___YOUR_DSN___",
    "SendDefaultPii": true,
    "MaxRequestBodySize": "Always",
    "MinimumBreadcrumbLevel": "Debug",
    "MinimumEventLevel": "Warning",
    "AttachStacktrace": true,
    "Debug": true,
    "TracesSampleRate": 1.0,
    "Environment": "production",
    "Release": "my-app@1.0.0"
  }
}

Environment variables (double underscore as separator):

export Sentry__Dsn="https://examplePublicKey@o0.ingest.sentry.io/0"
export Sentry__TracesSampleRate="0.1"
export Sentry__Environment="staging"

WPF — App.xaml.cs

⚠️ Critical: Initialize in the constructor, NOT in OnStartup(). The constructor fires earlier, catching more failure modes.
using System.Windows;
using Sentry;

public partial class App : Application
{
    public App()
    {
        SentrySdk.Init(options =>
        {
            options.Dsn = "___YOUR_DSN___";
            options.Debug = true;
            options.SendDefaultPii = true;
            options.TracesSampleRate = 1.0;
            options.IsGlobalModeEnabled = true;   // required for all desktop apps
        });

        // Capture WPF UI-thread exceptions before WPF's crash dialog appears
        DispatcherUnhandledException += App_DispatcherUnhandledException;
    }

    private void App_DispatcherUnhandledException(
        object sender,
        System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
    {
        SentrySdk.CaptureException(e.Exception);
        // Set e.Handled = true to prevent crash dialog and keep app running
    }
}

WinForms — Program.cs

using System;
using System.Windows.Forms;
using Sentry;

static class Program
{
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);

        // Required: allows Sentry to see unhandled WinForms exceptions
        Application.SetUnhandledExceptionMode(UnhandledExceptionMode.ThrowException);

        using (SentrySdk.Init(new SentryOptions
        {
            Dsn = "___YOUR_DSN___",
            Debug = true,
            TracesSampleRate = 1.0,
            IsGlobalModeEnabled = true,           // required for desktop apps
        }))
        {
            Application.Run(new MainForm());
        } // Disposing flushes all pending events
    }
}

.NET MAUI — MauiProgram.cs

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder();
        builder
            .UseMauiApp<App>()
            .UseSentry(options =>
            {
                options.Dsn = "___YOUR_DSN___";
                options.Debug = true;
                options.SendDefaultPii = true;
                options.TracesSampleRate = 1.0;
                // MAUI-specific: opt-in breadcrumbs (off by default — PII risk)
                options.IncludeTextInBreadcrumbs = false;
                options.IncludeTitleInBreadcrumbs = false;
                options.IncludeBackgroundingStateInBreadcrumbs = false;
            });

        return builder.Build();
    }
}

Blazor WebAssembly — Program.cs

var builder = WebAssemblyHostBuilder.CreateDefault(args);

builder.UseSentry(options =>
{
    options.Dsn = "___YOUR_DSN___";
    options.Debug = true;
    options.SendDefaultPii = true;
    options.TracesSampleRate = 0.1;
});

// Hook logging pipeline without re-initializing the SDK
builder.Logging.AddSentry(o => o.InitializeSdk = false);

await builder.Build().RunAsync();

Azure Functions (Isolated Worker) — Program.cs

using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using OpenTelemetry.Trace;
using Sentry.OpenTelemetry;

var host = new HostBuilder()
    .ConfigureFunctionsWorkerDefaults()
    .ConfigureServices(services =>
    {
        services.AddOpenTelemetry().WithTracing(builder =>
        {
            builder
                .AddSentry()                        // route OTel spans to Sentry
                .AddHttpClientInstrumentation();    // capture outgoing HTTP
        });
    })
    .ConfigureLogging(logging =>
    {
        logging.AddSentry(options =>
        {
            options.Dsn = "___YOUR_DSN___";
            options.Debug = true;
            options.TracesSampleRate = 1.0;
            options.UseOpenTelemetry();                     // let OTel drive tracing
            options.DisableSentryHttpMessageHandler = true; // prevent duplicate HTTP spans
        });
    })
    .Build();

await host.RunAsync();

AWS Lambda — LambdaEntryPoint.cs

public class LambdaEntryPoint : APIGatewayProxyFunction
{
    protected override void Init(IWebHostBuilder builder)
    {
        builder
            .UseSentry(options =>
            {
                options.Dsn = "___YOUR_DSN___";
                options.TracesSampleRate = 1.0;
                options.FlushOnCompletedRequest = true; // REQUIRED for Lambda
            })
            .UseStartup<Startup>();
    }
}

Classic ASP.NET — Global.asax.cs

public class MvcApplication : HttpApplication
{
    private IDisposable _sentry;

    protected void Application_Start()
    {
        _sentry = SentrySdk.Init(options =>
        {
            options.Dsn = "___YOUR_DSN___";
            options.TracesSampleRate = 1.0;
            options.AddEntityFramework(); // EF6 query breadcrumbs
            options.AddAspNet();          // Classic ASP.NET integration
        });
    }

    protected void Application_Error() => Server.CaptureLastError();

    protected void Application_BeginRequest() => Context.StartSentryTransaction();
    protected void Application_EndRequest() => Context.FinishSentryTransaction();

    protected void Application_End() => _sentry?.Dispose();
}

Symbol Upload (Readable Stack Traces)

Without debug symbols, stack traces show only method names — no file names or line numbers. Upload PDB files to unlock full source context.

Step 1: Create a Sentry auth token

Go to sentry.io/settings/auth-tokens/ and create a token with project:releases and org:read scopes.

Step 2: Add MSBuild properties to .csproj or Directory.Build.props:

<PropertyGroup Condition="'$(Configuration)' == 'Release'">
  <SentryOrg>___ORG_SLUG___</SentryOrg>
  <SentryProject>___PROJECT_SLUG___</SentryProject>
  <SentryUploadSymbols>true</SentryUploadSymbols>
  <SentryUploadSources>true</SentryUploadSources>
  <SentryCreateRelease>true</SentryCreateRelease>
  <SentrySetCommits>true</SentrySetCommits>
</PropertyGroup>

Step 3: Set SENTRY_AUTH_TOKEN in CI:

# GitHub Actions
- name: Build & upload symbols
  run: dotnet build -c Release
  env:
    SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}

For Each Agreed Feature

Load the corresponding reference file and follow its steps:

FeatureReference fileLoad when...
Error Monitoringreferences/error-monitoring.mdAlways — CaptureException, scopes, enrichment, filtering
Tracingreferences/tracing.mdServer apps, distributed tracing, EF Core spans, custom instrumentation
Profilingreferences/profiling.mdPerformance-critical apps on.NET 6+
Loggingreferences/logging.mdILogger<T>, Serilog, NLog, log4net integration
Metricsreferences/metrics.mdCustom counters, gauges, distributions; EmitCounter, EmitGauge, EmitDistribution
Cronsreferences/crons.mdHangfire, Quartz.NET, or scheduled function monitoring

For each feature: read the reference file, follow its steps exactly, and verify before moving on.


Verification

After wizard or manual setup, add a test throw and remove it after verifying:

// ASP.NET Core: add a temporary endpoint
app.MapGet("/sentry-test", () =>
{
    throw new Exception("Sentry test error — delete me");
});

// Or capture explicitly anywhere
SentrySdk.CaptureException(new Exception("Sentry test error — delete me"));

Then check your Sentry Issues dashboard — the error should appear within ~30 seconds.

Verification checklist:

CheckHow
Exceptions capturedThrow a test exception, verify in Sentry Issues
Stack traces readableCheck that file names and line numbers appear
Tracing activeCheck Performance tab for transactions
Logging wiredLog an error via ILogger, check it appears as Sentry breadcrumb
Symbol upload workingStack trace shows Controllers/HomeController.cs:42 not <unknown>

Config Reference

Core SentryOptions

OptionTypeDefaultEnv VarNotes
DsnstringSENTRY_DSNRequired. SDK disabled if unset.
DebugboolfalseSDK diagnostic output. Disable in production.
DiagnosticLevelSentryLevelDebugDebug, Info, Warning, Error, Fatal
ReleasestringautoSENTRY_RELEASEAuto-detected from assembly version + git SHA
Environmentstring"production"SENTRY_ENVIRONMENT"debug" when debugger attached
DiststringBuild variant. Max 64 chars.
SampleRatefloat1.0Error event sampling rate 0.0–1.0
TracesSampleRatedouble0.0Transaction sampling. Must be > 0 to enable.
TracesSamplerFunc<SamplingContext, double>Per-transaction dynamic sampler; overrides TracesSampleRate
ProfilesSampleRatedouble0.0Fraction of traced transactions to profile. Requires Sentry.Profiling.
SendDefaultPiiboolfalseInclude user IP, name, email
AttachStacktracebooltrueAttach stack trace to all messages
MaxBreadcrumbsint100Max breadcrumbs stored per event
IsGlobalModeEnabledboolfalse**Auto-true for MAUI, Blazor WASM. Must be true for WPF, WinForms, Console.
AutoSessionTrackingboolfalse**Auto-true for MAUI. Enable for Release Health.
CaptureFailedRequestsbooltrueAuto-capture HTTP client errors
CacheDirectoryPathstringOffline event caching directory
ShutdownTimeoutTimeSpanMax wait for event flush on shutdown
HttpProxystringProxy URL for Sentry requests
EnableBackpressureHandlingbooltrueAuto-reduce sample rates on delivery failures
TraceIgnoreStatusCodesIList<HttpStatusCodeRange>[]Drop transactions whose HTTP response status matches any range; e.g., [404] or [(500, 599)]

ASP.NET Core Extended Options (SentryAspNetCoreOptions)

OptionTypeDefaultNotes
MaxRequestBodySizeRequestSizeNoneNone, Small (~4 KB), Medium (~10 KB), Always
MinimumBreadcrumbLevelLogLevelInformationMin log level for breadcrumbs
MinimumEventLevelLogLevelErrorMin log level to send as Sentry event
CaptureBlockingCallsboolfalseDetect .Wait() / .Result threadpool starvation
FlushOnCompletedRequestboolfalseRequired for Lambda / serverless
IncludeActivityDataboolfalseCapture System.Diagnostics.Activity values

MAUI Extended Options (SentryMauiOptions)

OptionTypeDefaultNotes
IncludeTextInBreadcrumbsboolfalseText from Button, Label, Entry elements. ⚠️ PII risk.
IncludeTitleInBreadcrumbsboolfalseTitles from Window, Page elements. ⚠️ PII risk.
IncludeBackgroundingStateInBreadcrumbsboolfalseWindow.Backgrounding event state. ⚠️ PII risk.

Environment Variables

VariablePurpose
SENTRY_DSNProject DSN
SENTRY_RELEASEApp version (e.g. my-app@1.2.3)
SENTRY_ENVIRONMENTDeployment environment name
SENTRY_AUTH_TOKENMSBuild / sentry-cli symbol upload auth token

ASP.NET Core: use double underscore __ as hierarchy separator:

export Sentry__Dsn="https://..."
export Sentry__TracesSampleRate="0.1"

MSBuild Symbol Upload Properties

PropertyTypeDefaultDescription
SentryOrgstringSentry organization slug
SentryProjectstringSentry project slug
SentryUploadSymbolsboolfalseUpload PDB files for line numbers in stack traces
SentryUploadSourcesboolfalseUpload source files for source context
SentryCreateReleaseboolfalseAuto-create a Sentry release during build
SentrySetCommitsboolfalseAssociate git commits with the release
SentryUrlstringSelf-hosted Sentry URL

Phase 4: Cross-Link

After completing.NET setup, check for companion frontend projects:

# Check for frontend in adjacent directories
ls ../frontend ../client ../web ../app 2>/dev/null

# Check for JavaScript framework indicators
cat ../package.json 2>/dev/null | grep -E '"next"|"react"|"vue"|"nuxt"' | head -3

If a frontend is found, suggest the matching SDK skill:

Frontend detectedSuggest skill
Next.js ("next" in package.json)sentry-nextjs-sdk
React SPA ("react" without "next")@sentry/react — see docs.sentry.io/platforms/javascript/guides/react/
Vue.js@sentry/vue — see docs.sentry.io/platforms/javascript/guides/vue/
Nuxt@sentry/nuxt — see docs.sentry.io/platforms/javascript/guides/nuxt/

Connecting frontend and backend with the same Sentry project enables distributed tracing — a single trace view spanning browser,.NET server, and any downstream APIs.


Troubleshooting

IssueCauseSolution
Events not appearingDSN misconfiguredSet Debug = true and check console output for SDK diagnostic messages
Stack traces show no file/linePDB files not uploadedAdd SentryUploadSymbols=true to .csproj; set SENTRY_AUTH_TOKEN in CI
WPF/WinForms exceptions missingIsGlobalModeEnabled not setSet options.IsGlobalModeEnabled = true in SentrySdk.Init()
Lambda/serverless events lostContainer freezes before flushSet options.FlushOnCompletedRequest = true
WPF UI-thread exceptions missingDispatcherUnhandledException not wiredRegister App.DispatcherUnhandledException in constructor (not OnStartup)
Duplicate HTTP spans in Azure FunctionsBoth Sentry and OTel instrument HTTPSet options.DisableSentryHttpMessageHandler = true
TracesSampleRate has no effectRate is 0.0 (default)Set TracesSampleRate > 0 to enable tracing
appsettings.json values ignoredConfig key format wrongUse flat key "Sentry:Dsn" or env var Sentry__Dsn (double underscore)
BeforeSend drops all eventsHook returns null unconditionallyVerify your filter logic; return null only for events you want to drop
MAUI native crashes not capturedWrong packageConfirm Sentry.Maui is installed (not just Sentry)

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

35.3%
按下载量换算1,686

Claude

29.99%
按下载量换算1,432

Cursor

19.88%
按下载量换算949

Gemini CLI

8.86%
按下载量换算423

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills