创建发布时无法生成快照,急~~~~~~~~~~
以前该服务器做过很多发布均正常,但现在出现问题,创建事务发布,快照无法生成,提示错误: 
 The   process   could   not   create   file    '\\HXAPP\f$\MSSQL7\ReplData\unc '   
 但地址栏输入该路径可以打开文件夹,并且文件夹内已经有生成了快照文件夹和快照文件,但只有一个快照文件而且仅几百个字节 
 开始认为是快照文件被某些进程使用,但发现可以删除快照文件 
 后将发布服务器的快照文件夹改成本地路径 'f:\MSSQL7\ReplData ',快照可以生成,但订阅方无法订阅,找不到路径 'f:\MSSQL7\ReplData '   
 将服务器上以前正常的发布重新做快照也出现上面的错误   
 所有操作均是sa用户,权限应该不存在问题   
 急求解决方法~~~~~
------解决方案--------------------文件夹权限确认无错,用户名无错就差不多了.
------解决方案--------------------引用 
 主要是要注意权限的问题,一般做发布/订阅,建议你做如下准备工作:     
 1.发布服务器,订阅服务器都创建一个同名的windows用户,并设置相同的密码,做为发布快照文件夹的有效访问用户 
 我的电脑 
 --控制面板 
 --管理工具 
 --计算机管理 
 --用户和组 
 --右键用户 
 --新建用户 
 --建立一个隶属于administrator组的登陆windows的用户   
 2.在发布服务器上,新建一个共享目录,做为发布的快照文件的存放目录,操作:   
 我的电脑--D:\ 新建一个目录,名为: PUB 
 --右键这个新建的目录 
 --属性--共享 
 --选择 "共享该文件夹 " 
 --通过 "权限 "按纽来设置具体的用户权限,保证第一步中创建的用户具有对该文件夹的所有权限 
 --确定     
 3.设置SQL代理(SQLSERVERAGENT)服务的启动用户(发布/订阅服务器均做此设置)   
 开始--程序--管理工具--服务 
 --右键SQLSERVERAGENT 
 --属性--登陆--选择 "此账户 " 
 --输入或者选择第一步中创建的windows登录用户名 
 -- "密码 "中输入该用户的密码   
 4.设置SQL Server身份验证模式,解决连接时的权限问题(发布/订阅服务器均做此设置)   
 企业管理器 
 --右键SQL实例--属性 
 --安全性--身份验证 
 --选择 "SQL Server 和 Windows " 
 --确定   
 5.在发布服务器和订阅服务器上互相注册 
 企业管理器 
 --右键SQL Server组 
 --新建SQL Server注册... 
 --下一步--可用的服务器中,输入你要注册的远程服务器名--添加 
 --下一步--连接使用,选择第二个 "SQL Server身份验证 " 
 --下一步--输入用户名和密码 
 --下一步--选择SQL Server组,也可以创建一个新组 
 --下一步--完成   
 6.对于只能用IP,不能用计算机名的,为其注册服务器别名 
   (在连接端配置,比如,在订阅服务器上配置的话,服务器名称中输入的是发布服务器的IP) 
 开始--程序--Microsoft SQL Server--客户端网络实用工具 
 --别名--添加 
 --网络库选择 "tcp/ip "--服务器别名输入SQL服务器名 
 --连接参数--服务器名称中输入SQL服务器ip地址 
 --如果你修改了SQL的端口,取消选择 "动态决定端口 ",并输入对应的端口号
------解决方案--------------------在SQL Server 2000里设置和使用数据库复制之前,应先检查相关的几台SQL Server服务器下面几点是否满足:       
     1、MSSQLserver和Sqlserveragent服务是否是以域用户身份启动并运行的(.\administrator用户也是可以的)       
         如果登录用的是本地系统帐户local,将不具备网络功能,会产生以下错误:           
         进程未能连接到Distributor  '@Server name '            
       (如果您的服务器已经用了SQL Server全文检索服务, 请不要修改MSSQLserver和Sqlserveragent服务的local启动。 
        会照成全文检索服务不能用。请换另外一台机器来做SQL Server 2000里复制中的分发服务器。)               
       修改服务启动的登录用户,需要重新启动MSSQLserver和Sqlserveragent服务才能生效。               
     2、检查相关的几台SQL Server服务器是否改过名称(需要srvid=0的本地机器上srvname和datasource一样)       
        在查询分析器里执行: 
          use master 
          select srvid,srvname,datasource from sysservers                
        如果没有srvid=0或者srvid=0(也就是本机器)但srvname和datasource不一样, 需要按如下方法修改:            
          USE master 
         GO 
         -- 设置两个变量 
         DECLARE @serverproperty_servername  varchar(100),  
                 @servername    varchar(100) 
         -- 取得Windows NT 服务器和与指定的 SQL Server 实例关联的实例信息 
         SELECT @serverproperty_servername = CONVERT(varchar(100), SERVERPROPERTY( 'ServerName ')) 
         -- 返回运行 Microsoft SQL Server 的本地服务器名称 
         SELECT @servername = CONVERT(varchar(100), @@SERVERNAME) 
         -- 显示获取的这两个参数 
         select @serverproperty_servername,@servername 
         --如果@serverproperty_servername和@servername不同(因为你改过计算机名字),再运行下面的 
         --删除错误的服务器名 
         EXEC sp_dropserver @server=@servername 
         --添加正确的服务器名 
         EXEC sp_addserver @server=@serverproperty_servername, @local= 'local '