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?
Instalar el recolector
Set up permissions for the collector directory.
Instalar los cmdlets de IntelliTrace PowerShell para recopilar los datos de las aplicaciones web o las aplicaciones de SharePoint
Configurar los permisos del directorio de archivos .iTrace
Recopilar datos de una aplicación web o una aplicación de SharePoint
O bien
Recopilar datos de una aplicación administrada
Abrir el archivo .iTrace en Visual Studio Ultimate
Instalar el recolector
En el servidor de la aplicación, cree el directorio del recopilador, por ejemplo: C:\IntelliTraceCollector
Obtenga el recopilador del Centro de descarga de Microsoft o de la carpeta de instalación de Visual Studio:
Centro de descarga de Microsoft:
En el servidor de la aplicación, vaya a Recopilador de IntelliTrace para Visual Studio.
Junto a IntelliTraceCollector.exe, elija Descargar.
Guarde IntelliTraceCollector.exe en el directorio del recopilador, por ejemplo: C:\IntelliTraceCollector
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.
Copie IntelliTraceCollection.cab de la siguiente carpeta:
..\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\IntelliTrace\11.0.0
Coloque IntelliTraceCollection.cab en el directorio del recopilador, por ejemplo: C:\IntelliTraceCollector
Expanda IntelliTraceCollection.cab:
En el servidor de la aplicación, abra una ventana del símbolo del sistema como administrador.
Examine el directorio del recopilador, por ejemplo: C:\IntelliTraceCollector
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
En el servidor de la aplicación, abra una ventana del símbolo del sistema como administrador.
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
Para recopilar datos de una aplicación web o una aplicación de SharePoint:
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
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
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.
Instale los cmdlets de IntelliTrace PowerShell.
Abra una ventana Comandos de PowerShell como administrador.
Elija Inicio, Todos los programas, Accesorios, Windows PowerShell.
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.
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
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 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.
-
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):
Abra Propiedades para el directorio de archivos .iTrace.
En la pestaña Seguridad, elija EditarAgregar.
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.
Asegúrese de que el equipo local aparece en el cuadro Desde esta ubicación.Si no está allí, elija Ubicaciones para cambiarlo.
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.
Elija Comprobar nombres para resolver el nombre.Elija Aceptar.
Asegúrese de que el grupo de aplicaciones tenga Control total.
Recopilar datos de una aplicación web o una aplicación de SharePoint
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>
Importante 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?
NotaDe 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 sobre la seguridadEspecifique 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.
Reproduzca el problema.
Para tomar una instantánea del archivo .iTrace, utilice la siguiente sintaxis:
Punto de control-IntelliTraceCollection"<ApplicationPool>"
Para comprobar el estado de la colección, use esta sintaxis:
Get-IntelliTraceCollectionStatus
Para detener la recolección de datos, utilice la siguiente sintaxis:
Stop-IntelliTraceCollection"<GrupoDeAplicaciones>"
Importante 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.
Abrir el archivo .iTrace en Visual Studio Ultimate
Recopilar datos de una aplicación administrada
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?
NotaDe 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 sobre la seguridadEspecifique la ruta de acceso completa, no una ruta de acceso relativa.PathToAppExecutableFileAndFileName
Ruta de acceso y nombre de archivo de la aplicación administrada
Detenga de la aplicación para finalizar la recolección de datos.
Abrir el archivo .iTrace en Visual Studio Ultimate
Abrir el archivo .iTrace en Visual Studio Ultimate
Mueva el archivo .iTrace o cópielo a un equipo con Visual Studio Ultimate.
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:
Abra el plan de recolección.Busque el elemento <ModuleList>.
En <ModuleList> establezca el atributo isExclusionList en false.
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 .
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?
Desde una sesión de depuración de IntelliTrace en Visual Studio Ultimate, vea Grabar la ejecución de código con IntelliTrace para depurar en Visual Studio.
Desde una sesión de Microsoft Test Manager, vea Cómo: Recopilar datos de IntelliTrace para ayudar a depurar problemas difíciles.
¿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
Blogs
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
Foros
Videos
Vídeo de Channel 9: Recopilación y análisis de datos en un entorno de producción