Problema
No ve transacciones asíncronas para WebApi
, HttpClient
, SqlCommand
, SqlDataReader
, NpgsqlCommand
ni instrumentación personalizada. Este problema suele ocurrir con aplicaciones creadas con el agente .NET de New Relic en .NET framework 4.0 o anterior y luego migradas a .NET framework 4.5 o superior.
Solución
Actualizar configuración de aplicación para pipeline
Se requiere una configuración appSetting
o system.web
específica si está utilizando:
- WebApi1 o WebApi2
- Métodos asíncronos en
HttpClient
,SqlCommand
,SqlDataReader
oNpgsqlCommand
- Transacción personalizada relacionada con asíncrona o instrumentación personalizada
- New Relic .NET agente versión 5.11.53.0 o superior
- .NET framework 4.5 o superior como objetivo de su aplicación
Si se aplican estas condiciones, debe asegurarse de que su aplicación utilice el pipeline de procesamiento de solicitudes actualizada introducida en .NET 4.5.
Para utilizar el pipeline actualizado, asegúrese de que su web.config
incluya una de las siguientes configuraciones. Si no aparece ninguna configuración, agregue una:
Recomendado: Verificar la compatibilidad con el nuevo pipeline
Opcional: puede indicarle a .NET framework que realice comprobaciones adicionales de su código asíncrono en tiempo de ejecución. Estas comprobaciones detectan problemas comunes en el código asíncrono, que pueden estar enmascarados por el pipeline ASP legacy .
Si su aplicación pasa sin problemas, puede estar seguro de que manejará correctamente el nuevo pipeline. Para obtener más información, consulte la documentación de configuración de Microsoft.
Para aplicar controles adicionales, agregue lo siguiente a web.config
:
<configuration> <appSettings> <add key="aspnet:AllowAsyncDuringSyncStages" value="false" /> </appSettings><configuration>
Causa
La instrumentación asíncrona está deshabilitada si el pipeline integrado legacy está presente. Antes de .NET 4.5, el pipeline integrado podía provocar interbloqueos. Para obtener más información sobre este error de .NET framework , consulte: