Como saber se os usuários estão usando o TFS Proxy?

Há um tempo atrás um cliente que instalou o TFS Proxy em sua empresa queria saber se o serviço estava realmente em uso – ou seja, se todos os desenvolvedores tinham configurado corretamente seu ambiente para tirar proveito do proxy.

Veja aqui uma dica que recebi de Grant Holliday:

Execute a consulta abaixo no banco de dados TfsActivityLogging.

Se todo mundo estiver usando o servidor de proxy, as únicas requisições no log de atividades deverão ser aquelas feitas pelo próprio servidor de log – ou seja, não deve aparecer nenhum nome de usuário aqui. Requisições que não tenham sido feitas pelo servidor de proxy:

  • Foram feitas por um usuário que não esteja com o proxy configurado localmente; ou
  • O usuário está com o proy configurado, mas no instante da chamada o proxy estava indisponível e ele foi direto ao AT.

A segunda condição do WHERE abaixo está comentada. Sabemos que todos os servidores de proxy rodam, por padrão, como NETWORK SERVICE. Dessa forma, podemos filtrar solicitações não originadas de um proxy.

SELECT
     SUM([ExecutionCount]) as DownloadCount
      ,[IdentityName]
      ,[IPAddress]
FROM
      [TfsActivityLogging].[dbo].[tbl_Command] WITH (NOLOCK)
WHERE
      Command = ‘Download’
      AND StartTime > DATEADD(hh, -6, GETUTCDATE())
     
– AND IdentityName NOT LIKE ‘%$’
GROUP BY
      IPAddress, IdentityName
ORDER BY
      SUM([ExecutionCount]) DESC

 

Technorati Tags: ,,,

Assista às palestras de VSTS na “Semana Tech” da Ka Solution

image

Na próxima semana teremos um evento muito bacana na Ka Solution, a “Semana Tech”, com inúmeras palestras sobre diversos produtos Microsoft.

Dentre essas palestras, gostaria de destacar as duas que teremos sobre VSTS:

Tema

Data

Periodo

Sala

Palestrante

Como acompanhar e controlar projetos com Team Foundation Server

21/05/2009

14:00 as 17:00

16

Igor Abade

Como realizar testes, arquitetura e desenvolvimento avançado com Visual Studio Team Editions

22/05/2009

14:00 as 17:00

16

Igor Abade

 

Para mais informações sobre o evento, visite http://www.kasolution.com.br/ka/palestras.asp

 

Technorati Tags: ,,

Agrupando Team Queries

Equipes que utilizem o Team Foundation Server podem acabar com uma grande quantidade de Team Queries – o que eventualmente compromete sua utilidade. Como achar uma query específica no meio de uma enxurrada de outras queries?

O TFS 2010 trará novidades neste aspecto – mais especificamente, a habilidade de criar pastas no Team Explorer, sob “Work Items”, para agrupar suas consultar pessoais e de equipe. Mas até lá, você pode usar o SharePoint para ajudá-lo a criar uma biblioteca de consultas pré-definidas que você queira compartilhar com sua equipe. Veja como em http://blogs.msdn.com/noahc/archive/2007/01/19/managing-lots-of-work-item-queries.aspx

 

Acesso negado ao acessar o TFS a partir de uma aplicação Web

Se você criar uma aplicação ASP.NET (Web Site, Web Application ou Web Service) e tentar conectar ao TFS a partir dessa aplicação, pode encontrar o seginte erro:

Microsoft.TeamFoundation.WorkItemTracking.Client.UnexpectedErrorException: Cannot complete the operation. An unexpected error occurred. ---> Microsoft.TeamFoundation.WorkItemTracking.Client.ClientException: Access is denied.
(Windows)
Could not open file 'C:Documents and SettingsDefault UserLocal SettingsApplication DataMicrosoftTeam Foundation2.0Cacheecfd6ff5-8ae8-4580-8187-ccd29db7c7cametadata1.curcache'. (Work Item Tracking Metadata Cache)
Access is denied.
(Windows)
Access is denied.
(Windows)
Could not open file 'C:Documents and SettingsDefault UserLocal SettingsApplication DataMicrosoftTeam Foundation2.0Cacheecfd6ff5-8ae8-4580-8187-ccd29db7c7cametadata1.curcache'. (Work Item Tracking Metadata Cache)
Could not initialize metadata cache for product 'ecfd6ff5-8ae8-4580-8187-ccd29db7c7ca'. (Work Item Tracking Metadata Cache)
Unspecified error
(Windows)
   --- End of inner exception stack trace ---
   at Microsoft.TeamFoundation.WorkItemTracking.Client.DataStore.HandleComException(Int32 hr)
   at Microsoft.TeamFoundation.WorkItemTracking.Client.DataStore.DatastoreClass.ConnectEx(String connectionString, Int32 hCredentials, String defaultCachePath, String instanceId, String userSamName, String userFriendlyName, String userSid)
   at Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemStore.InitializeInternal()
   at Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemStore
.Microsoft.TeamFoundation.Client.ITeamFoundationServerObject.Initialize(TeamFoundationServer teamFoundationServer)
   at Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemStore..ctor(TeamFoundationServer teamFoundationServer)
   at Service.TFSConnect() in d:InetpubactswsApp_CodeService.cs:line 55
   at Service.GetPubInfo(Int32 publishId) in d:InetpubactswsApp_CodeService.cs:line 67

Esse erro deve-se ao fato de que, por padrão, a conta de usuário da aplicação ASP.NET (Network Service no Windows 2003 ou superior) não tem direito de gravação no diretório de cache que os objetos do TFS criam localmente na máquina enode sua aplicação está sendo executada.

Para corrigir esse erro, adicione a seguinte linha ao web.config da aplicação que irá acessar o TFS:

<configuration>
    …
    <appSettings>
        <add key="WorkItemTrackingCacheRoot" value="E:FolderForCache" />
    </appSettings>
</configuration>

Onde “E:FolderCache” é um diretório no servidor em que o usuário do pool de aplicações do ASP.NET tenha direito de gravação. Para mais informações, acesse http://blogs.msdn.com/narend/archive/2006/07/29/how-to-configure-wit-om-on-a-web-application.aspx.