Problema
Você não vê transação assíncrona para WebApi
, HttpClient
, SqlCommand
, SqlDataReader
, NpgsqlCommand
ou instrumentação personalizada. Esse problema normalmente ocorre para aplicativos criados com o agente .NET da New Relic no .NET framework 4.0 ou anterior e depois migrados para o .NET framework 4.5 ou superior.
Solução
Atualizar appSetting para pipeline
Uma configuração appSetting
ou system.web
específica será necessária se você estiver usando:
- WebApi1 ou WebApi2
- Métodos assíncronos em
HttpClient
,SqlCommand
,SqlDataReader
ouNpgsqlCommand
- Transação personalizada relacionada a assíncrona ou instrumentação personalizada
- Agente New Relic .NET versão 5.11.53.0 ou superior
- .NET framework 4.5 ou superior como destino para seu aplicativo
Se essas condições se aplicarem, você deverá garantir que seu aplicativo use o pipeline de processamento de solicitação atualizado introduzido no .NET 4.5.
Para usar o pipeline atualizado, certifique-se de que seu web.config
inclua uma das configurações a seguir. Se nenhuma configuração aparecer, adicione uma:
Recomendado: verifique a compatibilidade com o novo pipeline
Opcional: você pode instruir o .NET framework para realizar verificações adicionais do seu código assíncrono em tempo de execução. Essas verificações detectam problemas comuns no código assíncrono, que podem ser mascarados pelo pipeline ASP legado.
Se seu aplicativo for aprovado sem problemas, você pode ter certeza de que ele lidará corretamente com o novo pipeline. Para obter mais informações, consulte a documentação de configuração da Microsoft.
Para impor verificações adicionais, adicione o seguinte a web.config
:
<configuration> <appSettings> <add key="aspnet:AllowAsyncDuringSyncStages" value="false" /> </appSettings><configuration>
Causa
A instrumentação assíncrona será desabilitada se o pipeline integrado legado estiver presente. Antes do .NET 4.5, o pipeline integrado poderia causar conflitos. Para obter mais informações sobre esse bug do .NET framework , consulte: