![f03982e7f999b5f7f37e86a53d57a3d8.png](https://i-blog.csdnimg.cn/blog_migrate/b5a3e759d41905b29e2aceff2b85325b.jpeg)
最近做的一个项目“
烨客进销存 一款追求完美与卓越的企业管理系统 -- 首页www.ayec.cn![8453c5e5d7fa2ad58fafe8fb824ea60f.png](https://i-blog.csdnimg.cn/blog_migrate/b8d71045291b3963c7ff957a09159538.jpeg)
”,使用到了SqlServer的双机热备实现数据库的读写分离,读写分离的好处就不用多说了,单就一个减轻主库压力就完全有必要来搞了。不过前题是Money要足,尤其是自动部署云主机,当然了,自己部署比直接使用别人提供的要廉价的多。费话不多说了,这次把SQL Server发布数据库快照遇到的问题奉上:
我用本地数据库订阅线上的数据库,这样实现了数据的热备份,让数据丢失做到最小化。但是启动复制监视器时却出现了一个问题。
错误消息:
Source: mscorlib
Target Site: Void WinIOError(Int32, System.String)
Message: 对路径“D:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLReplDatauncIZ23H57WZFJZ_XX_LOG_DEPLOY_XX20151012142252”的访问被拒绝。
Stack: 在 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
在 System.IO.Directory.InternalCreateDirectory(String fullPath, String path, DirectorySecurity dirSecurity)
在 System.IO.Directory.CreateDirectory(String path, DirectorySecurity directorySecurity)
在 Microsoft.SqlServer.Replication.Utilities.CreateDirectoryWithExtendedErrorInformation(String directory)
在 Microsoft.SqlServer.Replication.Snapshot.SnapshotProvider.CreateSnapshotFolders()
在 Microsoft.SqlServer.Replication.Snapshot.SqlServerSnapshotProvider.GenerateSnapshot()
在 Microsoft.SqlServer.Replication.SnapshotGenerationAgent.InternalRun()
在 Microsoft.SqlServer.Replication.AgentCore.Run() (源: mscorlib,错误号: 0)
![29ab303c6bde6ced5009d98e44d0e67a.png](https://i-blog.csdnimg.cn/blog_migrate/55cbc59bc9d285a64ebf92561298340f.jpeg)
问题原因:
使用SQL Server发布数据库快照的配置中,如果你选择了使用SQL Server代理,而SQL Server代理服务使用的登陆身份不具有对存放快照文件位置的读写权限时,就会出现该错误。
解决办法:
可以修改SQL Server代理服务的登录身份。
在服务中找到SQL Server服务。
![bd325a4c11d7243106bc56bf6e2082f9.png](https://i-blog.csdnimg.cn/blog_migrate/e92bd25fa2c239a017ebe9a98a46f50e.jpeg)
把服务的运行账户改成本地系统账户。
![68437181e41f900cb1f93d7faacbf940.png](https://i-blog.csdnimg.cn/blog_migrate/69ea6db8c48e69c7d21998f378c28972.jpeg)
问题就解决了,如下图:
![7eac97369d569289ff86132426ee2987.png](https://i-blog.csdnimg.cn/blog_migrate/e63d81f60c8a5bbfb6235a858cef3870.jpeg)