Application Insights 报告每个服务器请求的重复事件
Application Insights Reporting Duplicate Events for each Server Request
我在 Azure 应用服务下有一个 API 应用程序 运行,安装了 Application Insights 以跟踪 API 调用的服务器端遥测。在 Azure 门户中查看 Application Insights 时,我看到每个服务器调用都有两个事件。每个事件都有一个完全相同的副本,具有相同的时间戳、响应时间、遥测等。我已验证 Web 服务器日志中只有一个事件,因此我不会意外地从客户端调用相同的函数两次。
这里有几个截图来说明:
这可能是什么原因造成的?我该如何解决?
有一种已知情况可能会导致数据重复:
- 应用程序未载入 AI SDK 部署为 Azure
网络应用
- AI Extension 已安装到应用程序 -> 在此步骤之后
您无需修改代码即可开始接收数据
- 后来你决定使用更强大的 AI 功能,比如说自定义
事件跟踪并将您的应用程序从 VS 加载到 AI 和
重新部署。
现在您可能会遇到 HTTP 模块被注册两次并开始接收重复的请求数据的情况。发生这种情况是因为 AI nuget 包在 web.config 中添加了 HTTP 模块定义,但是扩展安装会将额外的程序集放入应用程序启动期间动态注册 HTTP 模块的应用程序 bin 文件夹中 - Microsoft.AI.HttpModule.dll(之前的 Microsoft.ApplicationInsights.Extensibility.HttpModule.dll版本)。要正确处理这种情况,您需要在应用程序部署过程中通过选择 "Settings->Remove additional files from destination" 删除扩展剩余部分(如果是从 VS 进行部署)。
我在 Azure 应用服务下有一个 API 应用程序 运行,安装了 Application Insights 以跟踪 API 调用的服务器端遥测。在 Azure 门户中查看 Application Insights 时,我看到每个服务器调用都有两个事件。每个事件都有一个完全相同的副本,具有相同的时间戳、响应时间、遥测等。我已验证 Web 服务器日志中只有一个事件,因此我不会意外地从客户端调用相同的函数两次。
这里有几个截图来说明:
这可能是什么原因造成的?我该如何解决?
有一种已知情况可能会导致数据重复:
- 应用程序未载入 AI SDK 部署为 Azure 网络应用
- AI Extension 已安装到应用程序 -> 在此步骤之后 您无需修改代码即可开始接收数据
- 后来你决定使用更强大的 AI 功能,比如说自定义 事件跟踪并将您的应用程序从 VS 加载到 AI 和 重新部署。
现在您可能会遇到 HTTP 模块被注册两次并开始接收重复的请求数据的情况。发生这种情况是因为 AI nuget 包在 web.config 中添加了 HTTP 模块定义,但是扩展安装会将额外的程序集放入应用程序启动期间动态注册 HTTP 模块的应用程序 bin 文件夹中 - Microsoft.AI.HttpModule.dll(之前的 Microsoft.ApplicationInsights.Extensibility.HttpModule.dll版本)。要正确处理这种情况,您需要在应用程序部署过程中通过选择 "Settings->Remove additional files from destination" 删除扩展剩余部分(如果是从 VS 进行部署)。