11/05/2009 | Autor: Igor Abade V. Leite | Categoria: Técnico | Comentários

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

`</blockquote>

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>

`</blockquote>

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.

Technorati Tags: TFS,VSTS,Team System,Work Item Tracking,WIT