位置: 编程技术 - 正文
解决此问题的几个关键点如下:
1、该现象只会出现在NTFS文件系统中。
2、由NTFS文件系统的访问权限导致。
一般手工操作的解决方案如下:
1、控制面板—>文件夹选项—>查看 关闭“使用简单文件共享(推荐)”
2、选择存放数据库文件的文件夹,右键选择属性,这时会多出一个“安全”选项卡,选择最后一个用户,将该用户的权限设为“完全控制”。
经过这两步操作后,数据库附加失败或附加后只读的问题即可解决。
下面重点讲这两步,用C#代码的实现,因为当我们为项目打包后,不可能让用户手工来执行这些操作1、C#关闭简单文件共享的代码实现 在百度、Google搜索此问题解决方法时,很多的操作方法并不正确,经过自己实际操作测试,正确方法如下: 注册表文件: Windows Registry Editor Version 5. [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsa] "forceguest"=dword: 批处理: reg add HKLMSYSTEMCurrentControlSetControlLsa /v forceguest /t REG_WORD /d 0x /f 如果选中此项,则将上述 0x 改为 0x。 通过修改注册表的方式实现代码如下: Microsoft.Win.RegistryKey key = Microsoft.Win.Registry.LocalMachine; Microsoft.Win.RegistryKey software = key.OpenSubKey(@"SYSTEMCurrentControlSetControlLsa", true); software.SetValue("forceguest", 0); 2、C#修改指定文件夹的用户访问权限代码实现如下:(将该用户的权限设置为可写) string path = this.Context.Parameters["targetdir"];//得到文件夹路径 DirectoryInfo dInfo = new DirectoryInfo(path); DirectorySecurity dSecurity = dInfo.GetAccessControl(); dSecurity.AddAccessRule(new FileSystemAccessRule(Environment.UserName, FileSystemRights.CreateFiles, AccessControlType.Allow)); dInfo.SetAccessControl(dSecurity);
推荐整理分享SQLServer 附加数据库后出现只读或失败的解决方法(sqlserver 附加数据库 只读),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:sqlserver附加数据库时出错,请单击消息中的超链接,sqlserver附加数据库时出错,请单击消息中的超链接,sqlserver附加数据库出错5123,sqlserver 附加数据库 只读,sqlserver附加数据库出错5120,sqlserver附加数据库拒绝访问解决方法汇总,sqlserver附加数据库时出错,请单击消息中的超链接,sqlserver附加数据库出错5123,内容如对您有帮助,希望把文章链接给更多的朋友!
根据日期知道当天是星期几的手动计算方法 蔡勒(Zeller)公式:w=y+[y/4]+[c/4]-2c+[(m+1)/]+d-1公式中的符号含义如下,w:星期;c:世纪-1;y:年(两位数);m:月(m大于等于3,小于等于,即在
一次SQL调优数据库性能问题后的过程(W) 将绝大部分的SQL查询改为存储过程,这样的操作毫无疑问可以提高部分性能。凡是使用select*fromxxx的操作一律具体到所需字段。使用join连接2个以上大量
SQL对冗余数据的删除重复记录只保留单条的说明 我们先看一下相关数据结构的知识。在学习线性表的时候,曾有这样一个例题。已知一个存储整数的顺序表La,试构造顺序表Lb,要求顺序表Lb中只包含
上一篇:MSSQL Server 查询优化方法 整理(mssql查询语句)
下一篇:根据日期知道当天是星期几的手动计算方法(根据日期算时间)
友情链接: 武汉网站建设