Siempre es útil debuggear apps en producción, pero no siempre nos dejan instalar Visual Studio para hacer el debugging. En estos casos podemos usar IntelliTrace collector para guardar información de diagnóstico en un Intellitrace log file (.iTrace files). Nos permite registrar que pasa en nuestra app sin instalar Visual Studio o hacer cambios en el ambiente.
- Creamos un folder en nuestro servidor de producción, C:\IntelliTraceCollector (supongo que estamos con una cuenta de administrador del servidor, sino habrá que setear permisos, ver el siguiente link:http://msdn.microsoft.com/en-us/library/vstudio/hh398365.aspx#BKMK_Create_and_Configure_a_Log_File_Directory)
- Descargo la tool desde http://www.microsoft.com/en-us/download/details.aspx?id=44909
- Instalo la tool
Folder: C:\IntelliTraceCollector
Abro una consola de powershell con permisos de administrador, y ejecuto lo siguiente:
cd C:\IntelliTraceCollector
expand /f:* IntelliTraceCollection.cab. C:\IntelliTraceCollector
Ejecuto el siguiente comando en la consola de powershell:
Import-Module C:\IntelliTraceCollector\Microsoft.VisualStudio.IntelliTrace.PowerShell.dll
Para saber sobre que App Pool voy a ejecutar el tracer, ejecuto el siguiente comando:
[Microsoft.SharePoint.Administration.SPWebService]::ContentService.ApplicationPools | ft Name
Este nos retorna todos los app pools de los web application. En el caso que quieras debuggear alguna feature del Central Administration, ejecuta el siguiente comando:
[Microsoft.SharePoint.Administration.SPWebService]::AdministrationService.ApplicationPools | ft Name
El mismo nos retorna el nombre del pool del Central Administration.
Ahora ejecuto lo siguiente:
Start-IntelliTraceCollection "DefaultAppPool (6.20.2014 10.27.31 AM)" "C:\IntelliTraceCollector\collection_plan.ASP.NET.default.xml" "C:\IntelliTraceCollector"
Ahora ejecuto el siguiente comando
Get-IntelliTraceCollectionStatus
El cual nos lista todos los App Pool y el estado del trace.
collection_plan.ASP.NET.default.xml: Colecciona solo IntelliTrace events y SharePoint events, incluyendo exceptions, database calls, y Web server requests. Si queres tener un trace más detallado tenes que ejecutarlo con collection_plan.ASP.NET.trace.xml
DefaultAppPool (6.20.2014 10.27.31 AM) –> es el nombre del Pool
C:\IntelliTraceCollector –> es el output de salida del archivo iTrace
Después de haber verificado que está OK el trace , reproduzco el problema, y recorro un poco el sitio de Sharepoint para coleccionar datos.
Una vez que reproduje el error, ejecuto el siguiente comando:
Checkpoint-IntelliTraceCollection "DefaultAppPool (6.20.2014 10.27.31 AM)"
Para finalizar el trace, ejecuto el comando:
Stop-IntelliTraceCollection "DefaultAppPool (6.20.2014 10.27.31 AM)"
Get-IntelliTraceCollectionStatus
En el directorio, está el archivo iTrace. El cual se puede abrir con Visual Studio 2013.
Después puedo recorrer el trace
Por ejemplo, puedes agregar el correlation ID de la excepción de Sharepoint para buscar la sección del trace que le corresponde.
Puedes ver las excepciones, web request, la información del sistema en el momento que ejecutaste el trace, la lista de threads que se dispararon y los modulos que se cargaron (.dll)
Para mayor información: http://msdn.microsoft.com/en-us/library/vstudio/hh398365.aspx
No hay comentarios:
Publicar un comentario