一天六杯水

Mango的.Net家园
随笔 - 10, 评论 - 19, 引用 - 0

导航

关于





王兴明 Mango
微软最有价值专家(MVP)
微软金牌认证讲师(MCT)

此Blog中的文章和随笔仅代表作者在某一特定时间内的观点和结论,对其完全的正确不做任何担保或假设。所有此处的原创文章转载必须知会作者本人。如有疑问,请发邮件至: wmango#hotmail.com

标签

每月存档

最新留言

广告

 

公司里的TFS的数据库出了一点问题,需将数据库恢复到之前的一个备份。恢复完了CheckIn本地的的更新,工作一切正常。但其它人从TFS上获得最新版本时却报文件的版本不对(比如某个sln文件),在本地workspace中用notepad打开发现,本来应当是一个XML文件,现在却成一个C#代码,而且是另一个team project的文件。随后所有人的机器上都有这个错,我的机子上也是。本以为是强制添加新文件造成数据库中File表中的content与Version表中的fullpath对应关系错误造成的,于是又一次恢复了数据库,本地好似一切正常,但在别人机器上错误又出现了。

一边先让项目给能正常工作,一边向GTSC写信,到下午时终于有了一些进展。TFS为了提高Versioncontrol Web service的性能,将已读出的文件在Web Server上进行了缓存,文件大多用zip进行压缩后放在Data目录中,下次有客户取最新版本就不用从Versioncontrol中读的了,而是从WebServer上直接读的。在TFS1.0里,一个数据库层只有一个应用层,正常情况下也相安无事。但如果直接对数据层进行操作,比如数据库恢复之类,那Web上的缓存与数据库中的就不一样了,所以就出现了文件名与文件内容不一致的情况。

删除Data目录下的所有文件夹后一切正常,可恶的缓存,让我白忙一天。

另有几件事,第一、删除缓存后最一次取最新版本,那个慢啊,本对缓存的一堆不满在慢慢等待中一点、一点、一点点地化解了,没他还真不行!第二、删之前我看一下Data目录,200M多,15000个文件,想能不能对他进行管理,查了一下资料,列在下面,希望对大家有所帮助。第三、如果你用了proxy,那proxy上的缓存也要一并删除。

Versioncontrol Web service中?Web.Config的设置如下:
fileCacheRoot:此设置是一个字符串,它描述作为版本控制服务器文件缓存根目录的目录路径。
CacheLimitPercent:此设置是一个数值,它表示可用于缓存的磁盘空间百分比。
CacheLimit:此设置是一个数值,它表示缓存的大小限制(以 MB 为单位)。
CacheDeletionPercent:此设置是一个数值,它表示达到缓存限制时将清空的缓存百分比。
LastWriteTimeUpdateWindow:此设置指示更新缓存中文件的 LastWriteTime 属性的时间间隔(以小时为单位)。此设置阻止对每个缓存命中请求的 LastWriteTime 更新,而仅在 LastWriteTimeUpdateWindow 中指定的持续时间到期后进行更新。此设置的默认值为 8 小时,设置范围为 1 到 24 小时之间。
StatisticsPersistTime:此元素指示应将统计信息写入磁盘的频率(以小时为单位)。默认值为 1 小时,设置范围为 1 到 24 小时之间。

打印 | 张贴于 2006-11-13 20:19:00 | Tag:VSTS

对不起,本博客主人暂时禁止大家查看或者发表评论,请查看其它博客内容.

Powered by: Joycode.MVC引擎 0.5.2.0