2010-12-17 1 views
4

J'essaie d'ajouter le suivi des demandes ayant échoué à mon serveur IIS 7/ASP.NET.Erreur IIS/ASP.net pour le suivi des demandes ayant échoué: "une trace de demande ayant échoué pour ce contenu existe déjà"

Tout d'abord, je crée un suivi des demandes ayant échoué pour "all content, error codes 400-999" car vous voulez enregistrer toutes les erreurs. Puis, j'essaye de créer une trace pour "all content, time: 5 seconds" parce que je veux tracer toutes les demandes "longues". Toutefois, IIS 7 me donne une erreur : "Une trace de demande ayant échoué pour ce contenu existe déjà". Comment puis-je ajouter cette deuxième trace pour tout le contenu qui prend> 5 secondes?

alt text

Répondre

1

Dans votre web.config la requête a échoué Tracing config ressemble à quelque chose comme:

<tracing> 
    <traceFailedRequests> 
    <add path="*"> 
     <traceAreas> 
     <add provider="ASP" verbosity="Verbose" /> 
     <add provider="ASPNET" areas="Infrastructure, etc" verbosity="Verbose" /> 
     <add provider="ISAPI Extension" verbosity="Verbose" /> 
     <add provider="WWW Server" areas="Authentication, etc" verbosity="Verbose" /> 
     </traceAreas> 
     <failureDefinitions statusCodes="400-999" /> 
    </add> 
    </traceFailedRequests> 
</tracing> 

L'attribut path définit le type de contenu par exemple les options de la première page de l'assistant Ajouter FRT (*, * .aspx, * .asp, Personnalisé).

Si vous examinez le schéma de la section system.webServer/tracing/traceFailedRequests dans applicationHost.config (situé dans %systemroot%\System32\inetsrv\ config\schema\IIS_schema.xml vous trouverez les contraintes suivantes:

Le chemin de la requête a échoué doit être unique:

<attribute name="path" type="string" isUniqueKey ="true" /> 

Dans un chemin chaque le fournisseur (ASP, ASPNET, extension ISAPI, etc.) doit être unique:

<attribute name="provider" type="string" required="true" isUniqueKey="true" /> 

Si vous avez ajouté une autre règle de trace r pour tracer le même contenu (*), mais en spécifiant timeTaken alors vous essayer d'ajouter:

<add path="*"> 
    <traceAreas> 
    <add provider="ASP" verbosity="Verbose" /> 
    <add provider="ASPNET" areas="Infrastructure, etc" verbosity="Verbose" /> 
    <add provider="ISAPI Extension" verbosity="Verbose" /> 
    <add provider="WWW Server" areas="Authentication, etc" verbosity="Verbose" /> 
    </traceAreas> 
    <failureDefinitions statusCodes="400-999" /> 
</add> 

Ce des conflits cours avec les règles du schéma qui disent que le chemin doit être unique. Cependant, ce que vous pouvez faire est de spécifier le contenu spécifique que vous voulez suivre lorsque le timeTaken est> = à 5 secondes.

Par exemple:

<add path="*.aspx"> 
    <traceAreas> 
    <add provider="ASP" verbosity="Verbose" /> 
    <add provider="ASPNET" areas="Infrastructure, etc" verbosity="Verbose" /> 
    <add provider="ISAPI Extension" verbosity="Verbose" /> 
    <add provider="WWW Server" areas="Authentication, etc" verbosity="Verbose" /> 
    </traceAreas> 
    <failureDefinitions timeTaken="00:00:05" statusCodes="400-999" /> 
</add> 
<add path="*.asp"> 
    <traceAreas> 
    <add provider="ASP" verbosity="Verbose" /> 
    <add provider="ASPNET" areas="Infrastructure, etc" verbosity="Verbose" /> 
    <add provider="ISAPI Extension" verbosity="Verbose" /> 
    <add provider="WWW Server" areas="Authentication, etc" verbosity="Verbose" /> 
    </traceAreas> 
    <failureDefinitions timeTaken="00:00:05" statusCodes="400-999" /> 
</add> 
<add path="*.asmx"> 
    <traceAreas> 
    <add provider="ASP" verbosity="Verbose" /> 
    <add provider="ASPNET" areas="Infrastructure, etc" verbosity="Verbose" /> 
    <add provider="ISAPI Extension" verbosity="Verbose" /> 
    <add provider="WWW Server" areas="Authentication, etc" verbosity="Verbose" /> 
    </traceAreas> 
    <failureDefinitions timeTaken="00:00:05" statusCodes="400-999" /> 
</add> 

pas aussi pratique que juste être capable de faire un joker, mais il est une solution de contournement.

Questions connexes