TFS Proxy的作用就是为远程访问TFS提供一个代理,缓存,提高远程访问的效率。
前两天要为我们的Team安装TFS Proxy,想通过它访问一个外网的TFS,进行Source Control。安装过程是很简单的。在TFS安装盘的Proxy目录下。
因为本地也有一个TFS,安装Proxy的时候,需要输入一个运行Proxy服务的帐户,我输入了本地TFS的运行域帐户。安装结束后,修改proxy.config文件配置Proxy,这是一个XML文件,内容如下:
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--><?xml version="1.0"?>
<ProxyConfiguration
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Servers>
<Server>
<Uri>http://Z:8080/VersionControl</Uri>
</Server>
</Servers>
<!-- Proxy file cache root folder -->
<CacheRoot>C:/Program Files/Microsoft Visual Studio 2005 Team Foundation Server/Web Services/VersionControlProxy/Data</CacheRoot>
<CacheLimitPolicy>
<!-- Cache limit expressed as percentage of disk space -->
<PercentageBasedPolicy>75</PercentageBasedPolicy>
<!-- Cache limit expressed as MB -->
<!--<FixedSizeBasedPolicy>10</FixedSizeBasedPolicy>-->
</CacheLimitPolicy>
<!-- Percentage of cache size that needs to be freed up, on hitting cache limit -->
<CacheDeletionPercent>10</CacheDeletionPercent>
<!-- Indicates how often (number of hours) the proxy statistics information should be persisted to a file-->
<StatisticsPersistTime>20</StatisticsPersistTime>
<ReaderChunkSize>1048576</ReaderChunkSize>
<WriterChunkSize>1048576</WriterChunkSize>
</ProxyConfiguration>
主要修改Uri就可以了,修改为TFS的URI。其他参数使用默认就可以,但是某些值是有限制的,修改时需要注意。StatisticsPersistTime就是限制在1~24。
配置客户端:
首先,客户端要安装VS2005+Team Explorer,VS2005最好是Team Edition,Express肯定不行,我记得Professinal可以,但是我试过,安装不上Team Explorer,不知道是什么原因。
在VS2005中,Tools菜单的Options里,Source control中Plug-in Selection子项中的Current source control plug-in选择Team Foundation Server ,Visual Studio Team Foundation Server子项中,钩选User proxy Server,Team Foundation Server name:输入安装Proxy的主机名称,Port输入8081,Protocol选择Http,OK。
在Tools菜单中选择Connet to Team Foundation Server,然后点击Servers按钮,添加Server,Team Foundation Server name输入TFS的名称,Port输入8080,Protocol选择Http。就可以连接TFS,连接成功会出现输入用户名密码的对话框。输入用户密 码验证通过就连接上TFS了。这样Source Control就会使用Proxy代理访问TFS了。
安装Proxy时需要注意,运行Proxy的帐户要与运行TFS的帐户是同一个。
我 在本地使用proxy没有问题,在<CacheRoot>C:/Program Files/Microsoft Visual Studio 2005 Team Foundation Server/Web Services/VersionControlProxy/Data</CacheRoot>这个目录下会有缓存的文件,如果此目录为空, 则Proxy没有发挥作用。
当我修改Uri为外网的TFS时进行访问,出现一个错误提示:我忘记记录下来了,大概意思是Proxy没有权限访
我认为出现此错误原因是运行proxy的帐户和运行TFS的帐户不一样。因为我安装proxy时使用的是我们本地运行TFS的域帐户,他肯定没有权 限访问那个外网的TFS。这里就要使用远端TFS的运行帐户运行Proxy,并且此帐户要加入到本地安装Proxy主机的Administrators组,主机本身可能也要加入到对方的域中,这牵扯到域的相关问题,垮地域Domain,域名解析,需要网管来解决了。这方面我就不精了。等把此问题解决后, 看能不能通过Proxy访问外网的TFS,搞定后通知大家。