常见错误信息:
- visual source safe internet was not enabled on this computerbecause
IIS is not installed - the server configuration settings apply only for localdatabases
- there was a failure uploading the url
解决方法如下:
- 如果是IIS 7,应该安装IIS 6 管理兼容性组件,VSS就能识别到IIS了。
- WebDAV发布、ASP.NET、URL授权需要安装 .
对于没有webdav的iis参考Installingand Configuring WebDAV on IIS 7 进行安装 - 服务器中打开数据库的路径应为共享文件方式\servervss,其中server一定要为计算机名,不能为ip
- X:vss文件夹权限为完全控制
步骤1:安装前的准备工作
服务器端:
因为Internet访问是通过Web Service实现的,所以安装前要先配置安装好IIS。
安装VSS2005好像可以自动安装.Net Framework 2.0,不过,我是事先安装好.Net Framework2.0并启用Asp.Net 2.0的。
客户端:
需要安装VS2005/2008,同时还也需要安装VSS2005,不然打开VS2005以后在源码管理里面会找不到源码管理的插件。
步骤2:安装VSS2005
在服务端跟客户端机器中分别安装VSS20005,安装时均保持默认,一路Next就行了。
步骤3:创建VSS数据库,并设置Internet访问
这一步没什么可说的,我直接Copy didasoft 中的内容了。
1、 启动Microsoft Visual SourceSafeAdministrator
2、 创建VSS数据库
一路Next,OK。截图如下:
VSS数据库权限控制
VSS权限分两步,首先是NTFS共享权限,另外才是VSS权限
- 共享VSS数据库文件夹。建议在共享文件夹名后加上$,如VSS$,这样别人就看不到这个共享文件夹了,只能输入完整的路径才能访问。共享权限为给Everone所有权限。
- NTFS权限设置。首先在服务器中为所有用户建议相应的账号,再设置VSS文件夹的权限,给刚才建立的用户完全控制的权限(必须是完全控制,因为用户需要通过共享文件夹的方式读写服务器中的这个文件夹中的内容,当然这样设置,安全性也就不高了,这些用户都可以随便删除这个文件夹中的内容,这也是VSS2005不完善的地方吧。
要想正常使用windows的文件夹共享功能,以下条件是必须的:本地连接-->属性,里面有“文件及打印共享服务”,另外IPX局域网协议也要有(XP),同时在服务里确保Server、Workstations、ComputerBrowser几个服务器都处于开启状态,此外还需要将防火墙中的文件及打印共享放行。 - 最后在VSS管理器中新建用户名,如果这里为用户新建的用户名正好与用户电脑的登录名相同的话,而且VSS服务器允许允许使用网络名自动登录的话(默认允许),用户打开VSS时就不会再验证密码,而直接登录进VSS。(由此可见,VSS安全性较差)。
3、启用Internet访问
在这里,我就遇到问题了,填写完成之后单击“确定”,提示我没有安装IIS。这可邪门了,我明明安装了IIS,Server上还有好多个站点在跑呢。
后来经过多方查询方才知道,VSS2005配置为Internet访问时需要在IIS的默认站点(站点ID号为1)中添加一个名为“SourceSafe"的虚拟目录,我们的Server2003在配置好以后将这个默认站点给删除了,因此VSS找不到这个默认站点,所以提示说IIS没有安装。解决的办法是修改其中一个要用来作为源码管理的站点ID(比如我是使用的Source.xxx.com这个站点),在IIS中将IIS的配置进行备份,备份后会在系统盘:WINDOWSsystem32inetsrvMetaBack这个目录下生成一个备份文件(我的叫changesiteid.MD0),用记事本打开,在里面搜索”Source.xxx.com“,然后将其中的Location="/LM/W3SVC/nnnnnnn"替换成 Location ="/LM/W3SVC/1",保存。
之后到IIS中使用该备份进行恢复,然后再执行上面的操作就不会提示这个错误了。
最后选择新加的库,点击Open,重新执行步骤1和2。
4、 客户端通过Internet访问
后,提示一个”检索 COM 类工厂 CLSID......"的错误,出现这个错误的原因是VSS2005安装目录(D:ProgramFilesMicrosoft Visual SourceSafe)的权限设置不正确,需要将NetworkService这个用户添加进去,并赋予可写权限。另外还需要将Internet来宾账户(IUSR_机器名)添加进去。这样操作后就不会出现这个错误了。