Compartir a través de


Uso del recopilador independiente de IntelliTrace (C#, Visual Basic)

El recopilador independiente de IntelliTrace permite recopilar datos de diagnóstico de IntelliTrace para las aplicaciones en servidores de producción u otros entornos sin instalar Visual Studio en la máquina de destino y sin cambiar el entorno del sistema de destino. El recopilador independiente de IntelliTrace funciona en aplicaciones web, SharePoint, WPF y Windows Forms. Cuando haya terminado de recopilar datos, elimine el recopilador para desinstalarlo.

Nota:

Para conocer los enfoques recomendados para diagnosticar problemas en los servidores de producción, consulte Diagnóstico de problemas después de la implementación.

Requisitos

¿Qué aplicaciones funcionan con el recopilador?

  • ASP.NET aplicaciones web hospedadas en Internet Information Services (IIS) versión 7.0, 7.5, 8.0, 12.0 y 16.0

  • Aplicaciones de SharePoint 2010 y SharePoint 2013

  • Aplicaciones de Windows Presentation Foundation (WPF) y Windows Forms.

¿Cómo empecemos?

  1. Instalación del recopilador

  2. Configuración de permisos para el directorio del recopilador

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

  4. Configuración de permisos para el directorio de archivos .iTrace

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

    O bien:

    Recopilación de datos de una aplicación administrada

  6. Abra el archivo .iTrace en Visual Studio Enterprise.

Instalación del recopilador

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

  2. Obtenga el recopilador de la carpeta de instalación de Visual Studio.

    1. Copie IntelliTraceCollection.cab de la carpeta donde está instalado el recopilador, por ejemplo:

      .. \Microsoft Visual Studio\18\Enterprise\Common7\IDE\CommonExtensions\Microsoft\IntelliTrace

      .. \Microsoft Visual Studio\2022\Enterprise\Common7\IDE\CommonExtensions\Microsoft\IntelliTrace

      o bien, para versiones anteriores de Visual Studio:

      .. \Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\IntelliTrace\12.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. Vaya al directorio del recopilador, por ejemplo: C:\IntelliTraceCollector

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

      expand /f:* IntelliTraceCollection.cab .

      Nota:

      El punto (.) conserva las subcarpetas que contienen planes de recopilación localizados.

Configuración de permisos para el directorio del 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 conceder al administrador del servidor permisos completos al directorio del recopilador. Por ejemplo:

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

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

    1. Asigne a la persona que ejecutará los cmdlets de PowerShell de IntelliTrace todos los permisos para el directorio del recopilador.

      Por ejemplo:

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

    2. Asigne permisos de lectura y ejecución al grupo de aplicaciones del conjunto de aplicaciones para la web o SharePoint en 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 de SharePoint - 80 :

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

Instalación de cmdlets de PowerShell de IntelliTrace para recopilar datos de aplicaciones web o 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 del servidor .

    Adición de PowerShell mediante el administrador del

  2. Instale los cmdlets de PowerShell de IntelliTrace.

    1. Abra una ventana de comandos de PowerShell como administrador.

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

      2. Elija uno de los pasos siguientes:

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

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

    2. En la ventana de comandos de PowerShell, use el comando Import-Module para importar Microsoft.VisualStudio.IntelliTrace.PowerShell.dll.

      Por ejemplo:

      Import-Module "C:\IntelliTraceCollector\Microsoft.VisualStudio.IntelliTrace.PowerShell.dll"

Configuración de permisos para el 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 ralentizar la aplicación, elija una ubicación en un disco de alta velocidad local que no esté muy activo.
      • Puede colocar 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.

    Importante

    • Restrinja el directorio de archivos .iTrace solo a las identidades que deben funcionar con el recopilador. Un archivo .iTrace puede contener información confidencial, como datos de usuarios, bases de datos, otras ubicaciones de origen y cadenas de conexión, ya que IntelliTrace puede registrar cualquier dato que pase a parámetros de método o como valores devueltos.
      • Asegúrese de que aquellos que pueden abrir archivos .iTrace tienen la autoridad para ver datos confidenciales. Tenga cuidado al compartir archivos .iTrace. Si otras personas deben tener acceso, copie los archivos en una ubicación compartida segura.
  2. Para una aplicación web o una aplicación de SharePoint, asigne a su grupo de aplicaciones permisos completos al directorio de archivos .iTrace. Puede usar el comando icacls de Windows o usar el Explorador de Windows (o el 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 de 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 Editar, Agregar.

      3. Asegúrese de que las entidades de seguridad integradas aparezcan en la casilla Seleccionar este tipo de objeto. Si no está ahí, elija Tipos de objeto para agregarlo.

      4. Asegúrese de que su equipo local aparezca en el cuadro Desde esta ubicación. Si no está ahí, elija Ubicaciones para cambiarla.

      5. En el cuadro Escriba los nombres de objeto que se van a 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 tiene control total.

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

  1. Para empezar a recopilar datos, abra una ventana de comandos de PowerShell como administrador y ejecute este comando:

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

    Importante

    Después de ejecutar este comando, escriba Y para confirmar que desea empezar a recopilar datos.

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

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

    Nombre Description
    ApplicationPool Nombre del grupo de aplicaciones donde se ejecuta la aplicación
    PathToCollectionPlan Ruta de acceso a un plan de recopilación, un archivo .xml que configura los ajustes del recopilador.

    Puede especificar un plan que acompaña al recopilador. Los planes siguientes funcionan para aplicaciones web y aplicaciones de SharePoint:

    - collection_plan.ASP.NET.default.xml
    Recopila solo eventos de IntelliTrace y eventos de SharePoint, incluidas excepciones, llamadas de base de datos y solicitudes de servidor web.
    - collection_plan.ASP.NET.trace.xml
    Recopila llamadas de función y todos los datos de collection_plan.ASP.NET.default.xml. Este plan es bueno para un análisis detallado, pero podría ralentizar tu aplicación más que collection_plan.ASP.NET.default.xml.

    Para evitar ralentizar la aplicación, personalice estos planes o cree su propio plan. Por motivos de seguridad, coloque los planes personalizados en la misma ubicación segura que los archivos del recopilador. Consulte Creación y personalización de planes de recopilación de IntelliTrace y ¿Cómo obtengo la mayoría de los datos sin ralentizar mi aplicación?Nota: De forma predeterminada, el tamaño máximo del archivo .iTrace es de 100 MB. Cuando el archivo .iTrace alcanza este límite, el recopilador elimina las primeras entradas del archivo para hacer espacio para las entradas más recientes. Para cambiar este límite, edite el atributo del plan de MaximumLogFileSize recopilación.

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

    Puede encontrar planes localizados en las subcarpetas del recopilador.
    FullPathToITraceFileDirectory Ruta de acceso completa al directorio de archivos .iTrace. Nota de seguridad: Proporcione la ruta de acceso completa, no una ruta de acceso relativa.

    El recopilador se asocia al grupo de aplicaciones y comienza a recopilar datos.

    ¿Puedo abrir el archivo .iTrace en este momento? No, el archivo se bloquea durante la recopilación de datos.

  2. Reproduzca el problema.

  3. Para crear un punto de control del archivo .iTrace, use esta sintaxis:

    Checkpoint-IntelliTraceCollection " <ApplicationPool>"

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

    Get-IntelliTraceCollectionStatus

  5. Para dejar de recopilar datos, use esta sintaxis:

    Stop-IntelliTraceCollection " <ApplicationPool>"

    Importante

    Después de ejecutar este comando, escriba Y para confirmar que desea dejar de recopilar datos. De lo contrario, el recopilador podría seguir recopilando datos, el archivo iTrace permanecerá bloqueado o es posible que el archivo no contenga datos útiles.

  6. Abra el archivo .iTrace en Visual Studio Enterprise.

Recopilación de datos de una aplicación administrada

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

    <RutaCompletaAlEjecutableDelColectorIntelliTrace>\IntelliTraceSC.exe launch /cp:<RutaAlPlanDeRecopilación>/f:<RutaCompletaAlDirectorioYNombreDeArchivoITrace><RutaAlArchivoEjecutableDeLaAplicaciónYNombreDeArchivo>

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

    C:IntelliTraceCollectorIntelliTraceSC.exe launch /cp:"C:IntelliTraceCollectorcollection_plan.ASP.NET.default.xml" /f:"C:IntelliTraceLogFilesMyApp.itrace" "C:MyAppMyApp.exe"

    Nombre Description
    FullPathToIntelliTraceCollectorExecutable Ruta de acceso completa al ejecutable del recopilador, IntelliTraceSC.exe
    PathToCollectionPlan Ruta de acceso a un plan de recopilación, un archivo .xml que configura los ajustes del recopilador.

    Puede especificar un plan que acompaña al recopilador. Los planes siguientes funcionan para aplicaciones administradas:

    - collection_plan.ASP.NET.default.xml
    Recopila solo eventos de IntelliTrace, incluidas las excepciones, las llamadas de base de datos y las solicitudes del servidor web.
    - collection_plan.ASP.NET.trace.xml
    Recopila llamadas de función y todos los datos de collection_plan.ASP.NET.default.xml. Este plan es bueno para un análisis detallado, pero podría ralentizar tu aplicación más que collection_plan.ASP.NET.default.xml.

    Para evitar ralentizar la aplicación, personalice estos planes o cree su propio plan. Por motivos de seguridad, coloque los planes personalizados en la misma ubicación segura que los archivos del recopilador. Consulte Creación y personalización de planes de recopilación de IntelliTrace y ¿Cómo obtengo la mayoría de los datos sin ralentizar mi aplicación?Nota: De forma predeterminada, el tamaño máximo del archivo .iTrace es de 100 MB. Cuando el archivo .iTrace alcanza este límite, el recopilador elimina las primeras entradas del archivo para hacer espacio para las entradas más recientes. Para cambiar este límite, edite el atributo del plan de MaximumLogFileSize recopilación.

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

    Puede encontrar planes localizados en las subcarpetas del recopilador.
    FullPathToITraceFileDirectoryAndFileName Ruta de acceso completa al directorio de archivos .iTrace y al nombre de archivo .iTrace con la extensión .itrace . Nota de seguridad: Proporcione 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 la recopilación de datos saliendo de la aplicación.

  3. Abra el archivo .iTrace en Visual Studio Enterprise.

Abra el archivo .iTrace en Visual Studio Enterprise.

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. Consulte Diagnóstico de problemas después de la implementación.

  1. Mueva el archivo .iTrace o cópielo a un equipo con la versión Visual Studio Enterprise (pero no las versiones Professional o Community).

  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 se produjo un evento. Consulte Uso de datos guardados de IntelliTrace.

    Nota:

    Para depurar con IntelliTrace y ejecutar el código paso a paso, debe tener los archivos de código fuente y los archivos de símbolos correspondientes en la máquina de desarrollo. Consulte Diagnóstico de problemas después de la implementación.

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

IntelliTrace puede recopilar muchos datos, por lo que el impacto en el rendimiento de la aplicación depende de los datos que IntelliTrace recopila y el tipo de código que analiza. Consulte Optimización de la recopilación de IntelliTrace en servidores de producción.

Estas son algunas maneras de obtener la mayoría de los datos sin ralentizar la aplicación:

  • Ejecute el recopilador solo cuando crea que hay un problema o cuando pueda reproducir el problema.

    Inicie la recopilación, reproduzca el problema y, a continuación, detenga la recopilación. Abra el archivo .iTrace en Visual Studio Enterprise y examine los datos. Consulte Abrir el archivo .iTrace en Visual Studio Enterprise.

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

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

  • Revise los eventos del plan de recopilación para el que IntelliTrace recopila datos. Edite el plan de recopilación para deshabilitar eventos que no sean relevantes o que no le interesen.

    Para deshabilitar un evento, establezca el atributo enabled del elemento <DiagnosticEventSpecification> en false:

    <DiagnosticEventSpecification enabled="false">

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

    ¿Cómo mejora este rendimiento?

    • Puede reducir el tiempo de inicio deshabilitando los eventos que no son relevantes para la aplicación. Por ejemplo, deshabilite los eventos de Flujo de trabajo de Windows para las aplicaciones que no usan Windows Workflow.

    • Puede mejorar tanto el rendimiento de inicio como en tiempo de ejecución deshabilitando los eventos del Registro para las aplicaciones que acceden al registro, pero no muestran problemas con la configuración del Registro.

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

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

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

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

      Por ejemplo, para recopilar datos del módulo web principal de la aplicación web Fabrikam Fiber, cree una lista como esta:

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

    Para recopilar datos de cualquier módulo cuyo nombre incluya "Fabrikam", cree una lista como esta:

    <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 este rendimiento?

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

    • Recorra paso a paso el código después de recopilar los datos.

    • Examine 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 recopilación excluyen módulos estableciendo el isExclusionList atributo en true. Sin embargo, excluir módulos podría dar lugar a la recopilación de datos de módulos que no cumplen los criterios de la lista y podría no interesarle, como módulos de código abierto o de terceros.

  • ¿Hay algún dato que IntelliTrace no recopile?

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

    Por ejemplo, supongamos que tiene una AlterEmployee firma de método que acepta un entero id y un Employee objeto oldemployee:

    public Employee AlterEmployee(int id, Employee oldemployee)

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

    Relación entre Empleado y Dirección

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

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

Puede obtener datos de IntelliTrace desde una sesión de depuración de IntelliTrace en Visual Studio Enterprise. Consulte Características de IntelliTrace.

¿Dónde puedo obtener más información?

Uso de datos guardados de IntelliTrace

IntelliTrace

Blogs

Uso remoto del recopilador independiente de IntelliTrace

Creación y personalización de planes de recopilación de IntelliTrace

Optimización de la recopilación de IntelliTrace en servidores de producción

Microsoft DevOps

Foros

Depurador de Visual Studio