• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

L'agent modifie l'en-tête Content-Type pour les applications WCF (.NET)

Problème

Avec l'agent .NET activé pour une application Windows Communication Foundation (WCF), l'en-tête de réponse Content-Type est modifié de manière inattendue en application/xml.

Solution

Basic solutions

Comments

Désactivez la fonctionnalité de traçage inter-applications (CAT).

Découvrez comment modifier la configuration CAT.

Si vous souhaitez que CAT reste activé, consultez les autres solutions.

Utilisez la fonctionnalité de traçage distribué (DT) au lieu de CAT.

Découvrez comment activer la configuration DT.

DT est une nouvelle méthode améliorée pour réaliser le traçage et dispose de fonctionnalités améliorées, par rapport à CAT, dans l'UI de New Relic.

DT ne nécessite pas de modifications des en-têtes de réponse et ne sera pas affecté par la modification des en-têtes de réponse.

Ajoutez l'en-tête Content-Type souhaité au message et à OperationContext.

Cette solution nécessite de modifier le code de votre application.

Cause

La fonctionnalité de traçage inter-applications (CAT) est activée par défaut dans l'agent .NET. CAT fonctionne en ajoutant des en-têtes aux messages de demande et aux messages de réponse.

Voici ce qui se passe dans l'agent :

  1. L'implémentation de la méthode de service WCF s'exécute.
  2. L'agent tentera d'ajouter des en-têtes CAT à la réponse WCF en ajoutant une instance HttpResponseMessageProperty , avec les en-têtes CAT, à OperationContext.Current.OutgoingMessageProperties.
  3. Le DispatchMessageFormatter personnalisé s'exécute et crée un nouveau message dans lequel l'en-tête Content-Type attendu est ajouté directement au nouveau message.
  4. L'implémentation WCF de Microsoft tentera de fusionner les propriétés de message définies dans le message de réponse avec les propriétés de message définies dans OperationContext. Consultez cette référence Microsoft sur ImmutableDispatchRuntime.cs pour plus de détails.
  5. Le HttpResponseMessageProperty ne prend pas en charge la fusion, donc la valeur définie dans le OperationContext est utilisée à la place de la valeur définie dans le message.
  6. Par conséquent, l’en-tête Content-Type initialement ajouté au message formaté est supprimé et l’en-tête Content-Type par défaut est utilisé.

Étant donné que l'agent doit prendre en charge plusieurs liaisons WCF, il doit ajouter nos en-têtes CAT au OperationContext.

Droits d'auteur © 2025 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.