sábado, 2 de febrero de 2013

Tips/info #12 Team Foundation Server

1-TFS 2010 – Cruz roja sobre la carpete Documents y Reports (red X over Reports and Documents)

TFS_Red Cross next to documents and reports

Cierra el Visual Studio. Limpia la cache de TFS en tu máquina:

C:\Users\<UserName>\Local Settings\Application Data\Microsoft\Team Foundation\2.0\Cache
C:\Users\<UserName>\Local Settings\Application Data\Microsoft\Team Foundation\3.0\Cache

También borra la cache de Team Web Access, la carpeta se encuentra en el web.config que está en la siguiente ubicación:

C:\Program Files\Microsoft Team Foundation Server 2010\Application Tier\Web Access\Web

En el web.config aparece la key WorkItemTrackingCacheRoot

<appSettings>
    <!-- Directory path where cache is stored. –>

    <add key="WorkItemTrackingCacheRoot" value="C:\ProgramData\Microsoft\Team Foundation\Web Access\Cache_v10.0.30319"/>

    <!--<add key="DetailedRequestTrace" value="true" />-->
  </appSettings>

También se recomienda resetear los permisos tanto en el Reporting Services como en Sharepoint.

http://tfs:8080/tfs/web/ –> Project Portal –> Site Actions –> Site Settings –> People and Groups –> New –> Add Users

http://tfs/Reports –> Folder Settings –> Security –> New Role Assignment.

Otra posibilidad es que el nombre de los servers de TFS/Sharepoint/Reporting  no esté como FQDN.

Ej:El TFS se encuentra publicado en miTFS.dominio.com, y tu configuraste Visual Studio con miTFS

Para solucionarlo, se puede usar el archivo host de tu máquina.

2-TFS 210 client tracing (Visual Studio 2010)

El tracing de lo que ocurre del lado del cliente al conectarse con TFS, puede ser útil para ver solucionar errores. Para activarlo haga lo siguiente:

  • Cerrar Visual Studio 2010
  • Abrir el directorio: C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE
  • Hacer backup del archivo devenv.exe.config
  • Editar el archivo agregando las siguientes líneas, antes de tag </configuration>
 <appSettings>     <add key="VersionControl.EnableSoapTracing" value="true" />
<add key="VersionControl.TraceDownloadContent" value="false" />     <add key="VersionControl.EnableCompression" value="true" />
</appSettings>

<system.diagnostics>
  <switches>
    <add name="TeamFoundationSoapProxy" value="4" />
    <add name="VersionControl" value="4" />
  </switches>
  <trace autoflush="true" indentsize="3">
    <listeners>
      <add name="myListener"
   type="Microsoft.TeamFoundation.TeamFoundationTextWriterTraceListener,Microsoft.TeamFoundation.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
       initializeData="c:\Logs\tfs.log" />
      <add name="perfListener" type="Microsoft.TeamFoundation.Client.PerfTraceListener,Microsoft.TeamFoundation.Client, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
               />
    </listeners>
  </trace>
</system.diagnostics>



  • Los datos se guardaran en el path c:\Logs\tfs.log

  • Inicia Visual Studio, y empezará a hacer tracing de lo que pasa entre VS y TFS.

2-TFS 2010 Server tracing


Los logs de la consola de TFS se encuentran en C:\ProgramData\Microsoft\Team Foundation\Server Configuration\Logs


TFS Application Tier Trace Logging

Ir hasta C:\Program Files\Microsoft Team Foundation Server 2010\Application Tier\Web Services\


Abrir el web.config, y agregar las siguientes líneas:


<appSettings>
<add key="traceWriter" value="true" />


<add key="traceDirectoryName" value="c:\Logs\" />
</appSettings>


Recuerda que el usuario de app pool de TFS, debe tener permisos para escribir en el archivo de logs. Para editar el tipo de trace level, hay que editar una clave de registro. También se puede hacer desde la línea de comando: reg.exe add HKLM\SOFTWARE\Microsoft\TeamFoundationServer\10.0\Admin /t REG_DWORD /v TraceLevel /d 4 /f



0 – Off, 1 – Error, 2 – Warning, 3 – Information, 4 – Verbose


Hay otra posibilidad para habilitar el verbosity para 2010 y es a través de un web services:


http://<tfsserver>:<port>/tfs/tftrace.ashx?[traceWriter=<true|false>][&][All=<traceLevel>]

Ej: http://<tfs_server>:8080/<WebServices>/tftrace.ashx?traceWriter=true&All=Verbose

Para deshabilitar los traces, ejecute lo siguiente:

http://<tfs_server>:8080/<WebServices>/tftrace.aspx?traceWriter=false&All=Verbose

<WebServices> puede reemplazarse por: Build, services, VersionControl, Warehouse, y WorkItemTracking

Ej: para VersionControl

http://localhost:8080/VersionControl/tftrace.aspx?traceWriter=true&All=Verbose

Recuerde, que la opción del handle vía web services NO es persistente, ya que cuando se haga un recycle o un iisreset, la configuración se pierde. Para ello se debe usar la opción de la clave de registro o el web.config (C:\Program Files\Microsoft Team Foundation Server 2010\Application Tier\Web Services\)

<system.diagnostics>

<assert assertuienabled="true" />

<trace autoflush="false" indentsize="4" />

<!-- Trace Switches
Each of the trace switches should be set to a value between 0 and 4, inclusive.
0: No trace output
1-4: Increasing levels of trace output; see Systems.Diagnostics.TraceLevel
-->

<switches>
<add name="API" value="4" />
<add name="Authentication" value="0" />
<add name="Authorization" value="0" />
<add name="Database" value="0" />
<add name="General" value="0" />
<!-- WorkItem trace switches -->
<add name="traceLevel" value="4" />
</switches>

</system.diagnostics>


Recuerde que puede utilizar http://localhost:8080/tfs/trace.axd para ver el trace de la ejecución.


clip_image008

Puedes usar DebugView http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx para revisar los logs. Recuerda habilitar Capture Win 32, Pass-Through y Capture Events

image

image



3-Configuración del delay de Notification en TFS 2010


Por default, TFS genera un delay de 2 minutos antes de enviar las alertas o notificaciones.


Para modificarlo, ejecute lo siguiente en una consola de PowerShell:


[Reflection.Assembly]::Load("Microsoft.TeamFoundation.Client, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")

# Modifica la url de tu TFS

$configServer = new-object Microsoft.TeamFoundation.Client.TfsConfigurationServer "http://localhost:8080/tfs/"

# Obtiene el servicio de registry de TFS

$tfsRegService = $configServer.GetService([Microsoft.TeamFoundation.Framework.Client.ITeamFoundationRegistry])

# Seteo un delay de  30 seg.

$tfsRegService.SetValue("/Service/Integration/Settings/NotificationJobDelay", 30)

Otra posibilidad es usar la tool http://www.teamsystempro.com/downloads/TfsReg.zip

tfsreg.exe /server:https://yourtfs:8080/tfs/path:/Service/Integration/Settings/NotificationJobDelay /value:30

Recuerda hacer un recycle del app pool de  TFS.

No hay comentarios:

Publicar un comentario