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

使用Azure.Monitor.Query(C#)调用Application Insights遇404路径不存在错误

问题解决步骤

1. 修正API调用方法

你当前使用的QueryWorkspaceAsync是针对Log Analytics工作区的接口,但你要访问的是Application Insights资源,应该改用QueryResourceAsync方法,传入Application Insights的资源ID而非工作区ID。

资源ID可在Azure门户的Application Insights资源页面 → 概述 → 右上角「JSON视图」中获取,格式示例:/subscriptions/{订阅ID}/resourceGroups/{资源组}/providers/microsoft.insights/components/{AI实例名}

修正后的核心代码:

string aiResourceId = "/subscriptions/xxx/resourceGroups/xxx/providers/microsoft.insights/components/your-ai-instance";

var client = new LogsQueryClient(new DefaultAzureCredential());

try
{
    Response<LogsQueryResult> response = await client.QueryResourceAsync(aiResourceId,
               "customEvents | take 10", QueryTimeRange.All); // 改用customEvents查询

    LogsTable table = response.Value.Table;

    foreach (var row in table.Rows)
    {
        Console.WriteLine(row);
    }
}
catch (Exception e)
{
    log.LogInformation(e.Message);
}

2. 必要的权限配置

运行代码的身份(本地开发用你的Azure账号,生产环境用托管标识/服务主体)需要拥有Application Insights 读取者或Log Analytics 读取者角色:

  • 登录Azure门户,找到目标Application Insights资源
  • 进入「访问控制(IAM)」→ 添加角色分配
  • 选择对应角色,将身份添加到角色中

3. 查询语句修正

你需要获取customEvents,所以查询语句应使用customEvents表(AppEvents是旧表名,当前多数AI实例用customEvents存储自定义事件)。若要获取全量数据,建议先通过| take N测试,或按时间范围过滤避免返回过大结果集。

404错误的原因

原代码用QueryWorkspaceAsync传入Application Insights的工作区ID,该接口会尝试访问Log Analytics工作区的端点,若你的AI实例未关联到该工作区,或工作区ID填写错误,就会返回「路径不存在」的404错误。改用资源ID调用QueryResourceAsync即可解决此问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 04:35:06