Recopilar datos de IntelliTrace fuera de Visual Studio con el recopilador independiente

Para depurar aplicaciones de producción u otros entornos, use el recopilador de IntelliTrace para guardar datos de diagnóstico en un archivo de registro de IntelliTrace (archivo .iTrace).Esto permite registrar lo que ha sucedido en la aplicación sin instalar Visual Studio ni cambiar el entorno de la aplicación.Cuando haya recopilado los datos, simplemente elimine el recopilador para desinstalarlo.

Observe IntelliTrace en acción: Visual Studio Ultimate 2012: Recopilación y análisis de datos en un entorno de producción (vídeo del Channel 9)

Requisitos

  • .NET Framework 3.5, 4 o 4.5

  • Visual Studio Ultimate en un equipo de desarrollo o en otro equipo para abrir archivos .iTrace

    [!NOTA]

    Asegúrese de guardar los archivos de símbolos (.pdb).Para depurar con IntelliTrace y recorrer el código, debe tener los archivos de código fuente y los archivos de símbolos coincidentes.Vea Buscar símbolo (.pdb), origen y archivos binarios.

Preguntas más frecuentes

  • ¿Qué aplicaciones funcionan con el recolector?

  • ¿Cómo comenzar?

  • ¿Cómo puedo obtener la mayoría de los datos sin ralentizar la aplicación?

  • ¿Dónde más puedo obtener datos de IntelliTrace?

¿Qué aplicaciones funcionan con el recolector?

  • Aplicaciones web ASP.NET hospedadas en Internet Information Services (IIS), versiones 7.0, 7.5 y 8.0.

  • Aplicaciones de SharePoint 2010

  • Aplicaciones de escritorio administradas (archivos .exe).

¿Cómo comenzar?

  1. Instalar el recolector

  2. Set up permissions for the collector directory.

  3. Instalar los cmdlets de IntelliTrace PowerShell para recopilar los datos de las aplicaciones web o las aplicaciones de SharePoint

  4. Configurar los permisos del directorio de archivos .iTrace

  5. Recopilar datos de una aplicación web o una aplicación de SharePoint

    O bien

    Recopilar datos de una aplicación administrada

  6. Abrir el archivo .iTrace en Visual Studio Ultimate

Instalar el recolector

  1. En el servidor de la aplicación, cree el directorio del recopilador, por ejemplo: C:\IntelliTraceCollector

  2. Obtenga el recopilador del Centro de descarga de Microsoft o de la carpeta de instalación de Visual Studio:

    • Centro de descarga de Microsoft:

      1. En el servidor de la aplicación, vaya a Recopilador de IntelliTrace para Visual Studio.

      2. Junto a IntelliTraceCollector.exe, elija Descargar.

      3. Guarde IntelliTraceCollector.exe en el directorio del recopilador, por ejemplo: C:\IntelliTraceCollector

      4. Ejecute IntelliTraceCollector.exe.Esto extrae el archivo IntelliTraceCollection.cab.

      -O bien-

    • Carpeta de instalación de Visual Studio:

      [!NOTA]

      Para obtener el recopilador que es compatible con los eventos de diagnóstico para aplicaciones de SharePoint 2010, descargue Recopilador de IntelliTrace para Visual Studio o asegúrese de que tiene Visual Studio 2012.1 instalado.

      1. Copie IntelliTraceCollection.cab de la siguiente carpeta:

        ..\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\IntelliTrace\11.0.0

      2. Coloque IntelliTraceCollection.cab en el directorio del recopilador, por ejemplo: C:\IntelliTraceCollector

  3. Expanda IntelliTraceCollection.cab:

    1. En el servidor de la aplicación, abra una ventana del símbolo del sistema como administrador.

    2. Examine el directorio del recopilador, por ejemplo: C:\IntelliTraceCollector

    3. Use el comando expand, incluido el punto (.) al final, para expandir IntelliTraceCollection.cab:

      expand /f:* IntelliTraceCollection.cab .

      [!NOTA]

      El punto (.) mantiene las subcarpetas que contienen planes de colección traducidos.

Establecer permisos para el directorio de recopilador

  1. En el servidor de la aplicación, abra una ventana del símbolo del sistema como administrador.

  2. Use el comando icacls de Windows para asignar al administrador del servidor permisos completos en el directorio del recopilador.Por ejemplo:

    icacls "C:\IntelliTraceCollector" /grant "<Domain\AdministratorID>":F

  3. Para recopilar datos de una aplicación web o una aplicación de SharePoint:

    1. Conceda a la persona que ejecutará los cmdletes de IntelliTrace PowerShell permisos completos para el directorio del recopilador.

      Por ejemplo:

      icacls "C:\IntelliTraceCollector" /grant "<Domain\UserID>":F

    2. Conceda al grupo de aplicaciones para la aplicación web o aplicación de SharePoint permisos de lectura y ejecución para el directorio del recopilador.

      Por ejemplo:

      • Para una aplicación web en el grupo de aplicaciones DefaultAppPool :

        icacls "C:\IntelliTraceCollector" /grant "IIS APPPOOL\DefaultAppPool":RX

      • Para una aplicación de SharePoint en el grupo de aplicaciones SharePoint - 80 :

        icacls "C:\IntelliTraceCollector" /grant "IIS APPPOOL\SharePoint - 80":RX

Instalar los cmdlets de IntelliTrace PowerShell para recopilar los datos de las aplicaciones web o las aplicaciones de SharePoint

  1. En el servidor de la aplicación, asegúrese de que PowerShell esté habilitado.En la mayoría de las versiones de Windows Server, puede agregar esta característica en la herramienta administrativa Administrador de servidores.

    Agregar PowerShell mediante el Administrador de servidores

  2. Instale los cmdlets de IntelliTrace PowerShell.

    1. Abra una ventana Comandos de PowerShell como administrador.

      1. Elija Inicio, Todos los programas, Accesorios, Windows PowerShell.

      2. Elija uno de los siguientes pasos:

        • En los sistemas operativos de 64 bits, abra el menú contextual para Windows PowerShell.Elija Ejecutar como administrador.

        • En los sistemas operativos de 32 bits, abra el menú contextual para Windows PowerShell (x86).Elija Ejecutar como administrador.

    2. En la ventana comandos de PowerShell, use el comando de Importar-Módulo para importar Microsoft.VisualStudio.IntelliTrace.PowerShell.dll.

      Por ejemplo:

      Importar-Módulo "C:\IntelliTraceCollector\Microsoft.VisualStudio.IntelliTrace.PowerShell.dll"

Configurar los permisos del directorio de archivos .iTrace

  1. En el servidor de la aplicación, cree el directorio de archivos .iTrace, por ejemplo: C:\IntelliTraceLogFiles

    [!NOTA]

    • Para evitar retardar la aplicación, elija una ubicación en un disco de alta velocidad local que no sea muy activo.

    • Puede colocar los archivos .iTrace y los archivos del recopilador en el mismo lugar.Sin embargo, si tiene una aplicación web o una aplicación de SharePoint, asegúrese de que este lugar está fuera del directorio que hospeda la aplicación.

    Nota de seguridadNota sobre la seguridad
    • Limite la ubicación del directorio de archivos .iTrace únicamente a las identidades necesarias para trabajar con el recopilador.Un archivo .iTrace podría contener información confidencial, como datos de usuarios, bases de datos, otras ubicaciones de origen, así como cadenas de conexión puesto que IntelliTrace puede registrar cualquier dato que pase en los parámetros de método o como valores devueltos.

    • Asegúrese de que los que puedan abrir los archivos .iTrace tienen autoridad para ver información confidencial.Tenga cuidado al compartir archivos .iTrace.Si otros usuarios deben tener acceso, copie los archivos en una ubicación compartida segura.

  2. Para una aplicación web o de SharePoint, asigne al grupo de aplicaciones los permisos completos al directorio de archivos .iTrace.Puede usar el comando icacls de Windows o el Explorador de Windows (o Explorador de archivos).

    Por ejemplo:

    • Para configurar permisos con el comando icacls de Windows:

      • Para una aplicación web en el grupo de aplicaciones DefaultAppPool :

        icacls "C:\IntelliTraceLogFiles" /grant "IIS APPPOOL\DefaultAppPool":F

      • Para una aplicación de SharePoint en el grupo de aplicaciones SharePoint - 80 :

        icacls "C:\IntelliTraceLogFiles" /grant "IIS APPPOOL\SharePoint - 80":F

      O bien

    • Para configurar permisos con el Explorador de Windows (o el Explorador de archivos):

      1. Abra Propiedades para el directorio de archivos .iTrace.

      2. En la pestaña Seguridad, elija EditarAgregar.

      3. Asegúrese de que las Entidades de seguridad integradas aparezca en el cuadro Seleccione este tipo de objeto.Si no está allí, elija Tipos de objeto para agregarlo.

      4. Asegúrese de que el equipo local aparece en el cuadro Desde esta ubicación.Si no está allí, elija Ubicaciones para cambiarlo.

      5. En el cuadro Escriba los nombres de objeto que desea seleccionar , agregue el grupo de aplicaciones para la aplicación web o la aplicación de SharePoint.

      6. Elija Comprobar nombres para resolver el nombre.Elija Aceptar.

      7. Asegúrese de que el grupo de aplicaciones tenga Control total.

Recopilar datos de una aplicación web o una aplicación de SharePoint

  1. Para iniciar la recopilación de datos, abra una ventana de comandos de PowerShell como administrador y ejecute este comando:

    Start-IntelliTraceCollection"<GrupoDeAplicaciones>"<RutaDelPlanDeColección><RutaCompletaAlDirectorioDeArchivosITrace>

    Nota importanteImportante

    Después de ejecutar este comando, escriba Y para confirmar que desea iniciar la recopilación de datos.

    Por ejemplo, para obtener datos de una aplicación de SharePoint en el grupo de aplicaciones SharePoint - 80 :

    Start-IntelliTraceCollection "SharePoint - 80" "C:\IntelliTraceCollector\collection_plan.ASP.NET.default.xml" "C:\IntelliTraceLogFiles"

    ApplicationPool

    Nombre del grupo de aplicaciones donde se ejecuta la aplicación

    PathToCollectionPlan

    Ruta de acceso a un plan de colección, un archivo .xml que configura las opciones del recopilador.

    Puede especificar un plan que se incluye en el recopilador.Los planes siguientes funcionan para las aplicaciones web y las aplicaciones de SharePoint:

    • collection_plan.ASP.NET.default.xml

      Recopila solo los eventos de IntelliTrace y eventos de SharePoint, incluyendo excepciones, llamadas de base de datos y solicitudes del servidor web.

    • collection_plan.ASP.NET.tr ace.xml

      Recopila las llamadas de función y todos los datos de collection_plan.ASP.NET.default.xml.Este plan es práctico para el análisis detallado, pero podría retardar la aplicación más que collection_plan.ASP.NET.default.xml.

    Para evitar retardar la aplicación, personalice estos planes o cree su propio plan.Por seguridad, coloque cualquier plan personalizado en la misma ubicación segura que los archivos del recopilador.Vea Modificar un plan de recolección de IntelliTrace para un recolector independiente y ¿Cómo obtengo la mayoría de los datos sin ralentizar la aplicación?

    NotaNota
    De forma predeterminada, el tamaño máximo del archivo .iTrace es 100 MB.Cuando el archivo .iTrace alcanza este límite, el recopilador elimina las primeras entradas del archivo para crear el espacio para nuevas entradas.Para cambiar este límite, edite el atributo MaximumLogFileSize del plan de recolección.

    ¿Dónde puedo encontrar versiones localizadas de estos planes de recolección?

    Puede buscar planes localizados en las subcarpetas del recopilador.

    FullPathToITraceFileDirectory

    Ruta de acceso completa al directorio de archivos .iTrace.

    Nota de seguridadNota sobre la seguridad
    Especifique la ruta de acceso completa, no una ruta de acceso relativa.

    El recopilador se adjunta al grupo de aplicaciones y comienza la recopilación de datos.

    ¿Se puede abrir el archivo .iTrace en este momento? No, el archivo está bloqueado durante la recolección de datos.

  2. Reproduzca el problema.

  3. Para tomar una instantánea del archivo .iTrace, utilice la siguiente sintaxis:

    Punto de control-IntelliTraceCollection"<ApplicationPool>"

  4. Para comprobar el estado de la colección, use esta sintaxis:

    Get-IntelliTraceCollectionStatus

  5. Para detener la recolección de datos, utilice la siguiente sintaxis:

    Stop-IntelliTraceCollection"<GrupoDeAplicaciones>"

    Nota importanteImportante

    Después de ejecutar este comando, escriba Y para confirmar que desea detener la recopilación de datos.De lo contrario, el recopilador podría seguir recopilando datos, el archivo de iTrace permanecerá bloqueado o el archivo podría no contener ningún dato útil.

  6. Abrir el archivo .iTrace en Visual Studio Ultimate

Recopilar datos de una aplicación administrada

  1. Para iniciar la aplicación y recopilar datos al mismo tiempo, use esta sintaxis:

    <FullPathToIntelliTraceCollectorExecutable>\IntellitraceSC.exe launch /cp:<PathToCollectionPlan>/f:<FullPathToITraceFileDirectoryAndFileName><PathToAppExecutableFileAndFileName>

    Por ejemplo, para recopilar datos de una aplicación denominada MyApp:

    C:\IntelliTraceCollector\IntelliTraceSC.exe launch /cp:"C:\IntelliTraceCollector\collection_plan.ASP.NET.default.xml" /f:"C:\IntelliTraceLogFiles\MyApp.itrace" "C:\MyApp\MyApp.exe"

    FullPathToIntelliTraceCollectorExecutable

    Ruta de acceso completa al archivo ejecutable de recopilador, IntelliTraceSC.exe

    PathToCollectionPlan

    Ruta de acceso a un plan de colección, un archivo .xml que configura las opciones del recopilador.

    Puede especificar un plan que se incluye en el recopilador.Los siguientes planes funcionan para las aplicaciones administradas:

    • collection_plan.ASP.NET.default.xml

      Recopila solo los eventos de IntelliTrace, incluyendo excepciones, llamadas de base de datos y solicitudes del servidor web.

    • collection_plan.ASP.NET.tr ace.xml

      Recopila las llamadas de función y todos los datos de collection_plan.ASP.NET.default.xml.Este plan es práctico para el análisis detallado, pero podría retardar la aplicación más que collection_plan.ASP.NET.default.xml.

    Para evitar retardar la aplicación, personalice estos planes o cree su propio plan.Por seguridad, coloque cualquier plan personalizado en la misma ubicación segura que los archivos del recopilador.Vea Modificar un plan de recolección de IntelliTrace para un recolector independiente y ¿Cómo obtengo la mayoría de los datos sin ralentizar la aplicación?

    NotaNota
    De forma predeterminada, el tamaño máximo del archivo .iTrace es 100 MB.Cuando el archivo .iTrace alcanza este límite, el recopilador elimina las primeras entradas del archivo para crear el espacio para nuevas entradas.Para cambiar este límite, edite el atributo MaximumLogFileSize del plan de recolección.

    ¿Dónde puedo encontrar versiones localizadas de estos planes de recolección?

    Puede buscar planes localizados en las subcarpetas del recopilador.

    FullPathToITraceFileDirectoryAndFileName

    La ruta de acceso completa al directorio de archivos .iTrace y el nombre de archivo .iTrace con la extensión .itrace.

    Nota de seguridadNota sobre la seguridad
    Especifique la ruta de acceso completa, no una ruta de acceso relativa.

    PathToAppExecutableFileAndFileName

    Ruta de acceso y nombre de archivo de la aplicación administrada

  2. Detenga de la aplicación para finalizar la recolección de datos.

  3. Abrir el archivo .iTrace en Visual Studio Ultimate

Abrir el archivo .iTrace en Visual Studio Ultimate

  1. Mueva el archivo .iTrace o cópielo a un equipo con Visual Studio Ultimate.

  2. Haga doble clic en el archivo .iTrace fuera de Visual Studio o abra el archivo desde Visual Studio.

    Visual Studio muestra la página Resumen de IntelliTrace.En la mayoría de las secciones, puede revisar eventos u otros elementos, elegir un elemento e iniciar la depuración con IntelliTrace en el punto donde y cuando tuvo lugar un evento.Vea Depurar la aplicación con archivos de registro (.iTrace) de IntelliTrace.

    [!NOTA]

    Para depurar con IntelliTrace y recorrer el código, debe tener los archivos de código fuente y los archivos de símbolos coincidentes.Asegúrese de que los archivos de símbolos están en la ruta de acceso a los símbolos de Visual Studio.De lo contrario, Visual Studio no puede resolver las ubicaciones de origen y muestra el mensaje "Símbolos no encontrados". Vea Buscar símbolo (.pdb), origen y archivos binarios.

¿Cómo obtengo la mayoría de los datos sin ralentizar la aplicación?

IntelliTrace puede recopilar muchos datos, de manera que el impacto en el rendimiento de la aplicación depende del tipo de datos que IntelliTrace recopile y del tipo de código que analiza.Vea Optimizar la recolección de IntelliTrace en servidores de producción.

A continuación, se muestran algunas maneras de obtener la mayoría de los datos sin ralentizar la aplicación:

  • Ejecute el recopilador únicamente cuando crea que hay un problema o cuando se pueda reproducir el problema.

    Inicie la recolección, reproduzca el problema y después detenga la recolección.Abra el archivo .iTrace en Visual Studio Ultimate y examina los datos.Vea Abrir el archivo .iTrace en Visual Studio Ultimate.

  • En las aplicaciones web y de SharePoint, el recopilador registra los datos para cada aplicación web que comparte el grupo de aplicaciones especificado.Esto puede ralentizar cualquier aplicación que comparte el mismo grupo de aplicaciones, aunque puede especificar únicamente los módulos para una sola aplicación en un plan de recolección.

    Para evitar que el recopilador ralentice otras aplicaciones, ubique cada aplicación en su propio grupo de aplicaciones.

  • Revise los eventos en el plan de recolección para los que IntelliTrace recopila datos.Edite el plan de recolección para deshabilitar los eventos que no son pertinentes o no le interesan.

    Para deshabilitar un evento, establezca el atributo de enabled para el elemento <DiagnosticEventSpecification> a false:

    <DiagnosticEventSpecification enabled="false">

    Si no existe el atributo enabled, el evento está habilitado.

    ¿Cómo mejora esto el rendimiento?

    • Puede reducir el tiempo de inicio deshabilitando los eventos que no son pertinentes para la aplicación.Por ejemplo, deshabilite los eventos de Windows Workflow en las aplicaciones que no utilizan Windows Workflow.

    • Puede mejorar el inicio y el rendimiento en tiempo de ejecución deshabilitando los eventos de registro en aplicaciones que tienen acceso al registro pero no interfieren con los valores del registro.

  • Revise los módulos en el plan de recolección para los que IntelliTrace recopila datos.Edite el plan de colección para incluir solo los módulos que le interesen:

    1. Abra el plan de recolección.Busque el elemento <ModuleList>.

    2. En <ModuleList> establezca el atributo isExclusionList en false.

    3. Utilice el elemento <Name> para especificar cada módulo con uno de los siguientes valores: nombre de archivo, valor de cadena para incluir cualquier módulo cuyo nombre contenga esa cadena o clave pública.

    Por ejemplo, para obtener datos únicamente en el módulo web principal de la aplicación Fabrikam Fibra Web, cree una lista como ésta:

    <ModuleList isExclusionList="false">
       <Name>FabrikamFiber.Web.dll</Name>
    </ModuleList>
    

    Para recopilar datos de cualquier módulo cuyo nombre incluya “Fabrikam”, cree una lista como ésta:

    <ModuleList isExclusionList="false">
       <Name>Fabrikam</Name>
    </ModuleList>
    

    Para recopilar datos de módulos especificando sus tokens de clave pública, cree una lista como esta:

    <ModuleList isExclusionList="false">
       <Name>PublicKeyToken:B77A5C561934E089</Name>
       <Name>PublicKeyToken:B03F5F7F11D50A3A</Name>
       <Name>PublicKeyToken:31BF3856AD364E35</Name>
       <Name>PublicKeyToken:89845DCD8080CC91</Name>
       <Name>PublicKeyToken:71E9BCE111E9429C</Name>
    </ModuleList>
    

    ¿Cómo mejora esto el rendimiento?

    Esto reduce la cantidad de información de llamadas a métodos y otros datos de instrumentación que IntelliTrace recopila cuando se inicia la aplicación y se ejecuta.Estos datos le permiten:

    • Recorrer el código después de obtener los datos.

    • Examinar los valores pasados a y devueltos de las llamadas de función.

    ¿Por qué no excluir módulos en su lugar?

    De forma predeterminada, los planes de recolección excluyen los módulos estableciendo el atributo isExclusionList en true.Sin embargo, si se excluyen los módulos podría dar lugar a recopilar datos de módulos que no cumplen los criterios de lista y que no interesen, como los módulos de terceros o de código abierto.

  • ¿Hay datos que IntelliTrace no recopila?

    Sí, para reducir impacto en el rendimiento, IntelliTrace limita la recolección de datos a los valores de los tipos de datos primitivos pasados a y devueltos de los métodos, y los valores de tipos de datos primitivos de campos en los objetos de nivel superior pasados a y devueltos de los métodos.

    Por ejemplo, suponga que tiene una signatura de método AlterEmployee que acepta un entero id y un objeto oldemployeede Employee :

    public Employee AlterEmployee(int id, Employee oldemployee)

    El tipo de Employee tiene los atributos siguientes: Id, Name y HomeAddress.Existe una relación de asociación entre Employee y el tipo Address .

    Relación entre Empleado y Dirección

    El recolector registra los valores de id, Employee.Id, Employee.Name y el objeto de Employee devuelto del método AlterEmployee .Sin embargo, el recolector únicamente registra la información sobre si es null o no el objeto Address.El recolector tampoco registra datos sobre variables locales del método AlterEmployee a menos que otros métodos utilicen esas variables locales como parámetros en el punto en el que se registran como parámetros de método.

¿Dónde más puedo obtener datos de IntelliTrace?

¿Dónde puedo obtener información?

Depurar la aplicación con archivos de registro (.iTrace) de IntelliTrace

Depurar la aplicación grabando la ejecución de código con IntelliTrace

Hh398365.collapse_all(es-es,VS.110).gifBlogs

Utilizar de forma remota el recolector independiente de IntelliTrace

Modificar un plan de recolección de IntelliTrace para un recolector independiente

Optimizar la recolección de IntelliTrace en servidores de producción

Blog de Visual Studio ALM + TFS

Hh398365.collapse_all(es-es,VS.110).gifForos

Depurador de Visual Studio

Hh398365.collapse_all(es-es,VS.110).gifVideos

Vídeo de Channel 9: Recopilación y análisis de datos en un entorno de producción