You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core 5 中创建Activity实例的相关问题咨询

ASP.NET Core 5 Activity创建常见问题解答

如何创建Activity实例、是否需要从当前源创建

你提供的参考代码 var activity = Activity.Current?.Source.StartActivity("test"); 是符合官方规范的常用实现:

  • 当存在活跃的Activity.Current(即ASP.NET Core框架为当前请求生成的根Activity处于激活状态)时,通过当前关联Source启动的Activity会自动继承链路上下文,成为父Activity的子节点,无需手动配置关联关系
  • 若当前没有活跃的上下文,Activity.Current为null时该代码返回的实例为null,如果你需要在无父链路的场景下也生成独立Activity,可以直接通过指定的ActivitySource调用启动方法
  • 特别提醒:不要直接通过new Activity("活动名")的方式创建实例,该方式不会自动关联上下文,也不会触发链路监听器的相关回调,仅在极特殊的自定义场景下使用

是否可以自定义ActivitySource、生成的Activity是否自动成为框架Activity的子活动

  • 完全支持自定义ActivitySource,推荐将自定义源声明为全局单例使用,示例:
// 全局静态声明,参数分别为自定义源名称、版本号
public static readonly ActivitySource AppCustomSource = new ActivitySource("YourAppName.BusinessSource", "1.0.0");
  • 自定义源生成的Activity会自动关联父级:只要你调用AppCustomSource.StartActivity()时,Activity.Current有值(即框架创建的请求Activity处于活跃状态),新生成的Activity会自动将框架的Activity作为父节点,链路关联逻辑和框架自带源生成的子活动完全一致
  • 如果你使用了OpenTelemetry等链路采集工具,需要在采集配置中添加你的自定义源名称,才能正常采集自定义源生成的Activity数据

内容的提问来源于stack exchange,提问作者Ynv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 23:12:03