我正在使用Active Directory中的组来pipe理用户可以访问TFS中的项目。 我的问题是,即使AD显示他们在组中,甚至通过TFS,当我看谁是组的成员,它显示用户,访问不会立即授予。
我已经尝试刷新TFS的工人处理程序,没有运气。 机器重启(TFS服务器)好像修复了这个问题,但是每当我改变AD的时候,我都不能重新启动我的源代码控制。
我如何使AD更频繁地“发现”AD的变化? 到现在为止,在24小时之内变化终于出现了,用户也被允许进入项目。 另外,TFS 2005发生了这种情况,我们升级到了2008年,而且还在发生。
有任何想法吗?
在login时为用户枚举组成员身份。 在AD中更改用户成员资格时,用户需要注销其计算机以使更改对用户生效。 我猜你提到的“24小时以内”是因为他们第二天会回来工作并login到机器上。
TFScachingActive Directory信息,并且默认设置为每60分钟轮询一次Active Directory。 我通过在C:\ Program Files \ Microsoft Visual Studio 2008 Team Foundation Server \ Web Services \ Services \ web.config中添加“IdentityUpdatePeriod”参数来减less服务器上的时间间隔
当设置为5分钟时,我看到一些与Active Directory同步的错误,所以我将其更改为每15分钟运行一次(并且在一段时间内仍然会看到错误..但至less我不必告诉用户等待一小时)
之前:
<appSettings> <add key="ConnectionString" value="Data Source=[TFS_DATA_TIER_SERVER]\tfs;Initial Catalog=TfsIntegration;Integrated Security=True;Persist Security Info=False;Application Name=TeamFoundation" /> <add key="eventingEnabled" value="true" /> <add key="DetailedExceptions" value="false" /> <add key="emailNotificationFromAddress" value="[email protected]" /> <add key="smtpServer" value="[smtp_server]" /> </appSettings>
后:
<appSettings> <add key="ConnectionString" value="Data Source=[TFS_DATA_TIER_SERVER]\tfs;Initial Catalog=TfsIntegration;Integrated Security=True;Persist Security Info=False;Application Name=TeamFoundation" /> <add key="eventingEnabled" value="true" /> <add key="DetailedExceptions" value="false" /> <add key="emailNotificationFromAddress" value="[email protected]" /> <add key="smtpServer" value="[smtp_server]" /> <add key="IdentityUpdatePeriod" value="0:15:0"/> </appSettings>