您的位置:首页 > 其它

System.Exception: 操作必须使用一个可更新的查询

2012-11-15 10:45 357 查看
今天把ASP.net开发的网站部署到服务器上时,只有查询语句的页面可以正常浏览,但是碰到还更新操作或插入操作的页面都会提示:System.Exception: 操作必须使用一个可更新的查询。

在网上搜了半天,得出的解决方案如下:

ACCESS数据库无法更新问题:

 一般在Winxp与windows 2003 server下,文件目录的只读属性会影响OA程序写数据库操作,即使用户已经去掉其只读属性,但是之后只读又失效,导致许多OA不能正常运行。事实上,OA目录读写权限才是影响其运行的根本原因。所以只读属性能否去掉并不重要,只需要把相应目录赋予读写权限即可。

1、在通常情况下,Web应用程序只读属性并不影响Web系统运行。在需要写入、更新数据库时,Web程序操作数据库因权限不够会提示"操作必须使用一个可更新的查询。"这种情况可能会在NTFS分区环境下出现,FTA32一般分区不会出现。将Web应用程序放在FTA32分区下运行时,不会出现因权限等问题而导致系统不能正常运行的情况,但是其安全性不如NTFS好。因此,一般OA软件可在FTA32下测试运行,单位正式OA软件建议放置在NTFS下运行。

2、现以XP环境下,NTFS格式为例。进入OA根目录,工具—>文件夹选项—>查看,将“使用简单文件共享”前的勾选去掉。

3、OA根目录赋予Everyone完全控制、读写权限。

下面以一个例子更详细的介绍解决此类问题的方法和过程

出错举例:

Microsoft JET Database Engine (0x80004005)

操作必须使用一个可更新的查询。

/LeadBBS/inc/Board_Popfun.asp, 第569 行

需要权限:服务器管理员,否则联系服务器管理员进行

示例操作系统:Windows 2000 Server

1.找到你存放网站的文件夹,比如你的网站存放在D:\WEB\News.com

右键点击文件夹,选择属性



2.出来新窗口,选择安全,点击按钮添加(D)





3.在出来的窗口中,找到IUSER_开头的名称,并双击,点击确定.





4.确定后的结果是这个窗口,在安全的名称列表中多了刚才选择的用户

点击下面的按钮 高级(V)...





5.在弹出的新小窗口中,继续点击 查看/编辑(V) 按钮





6.出来新窗口..





7.重新选择权限分配.





8.点击应用完成设置



PS:

这个错误提示是因为“IUSR_机器名”这个用户的权限不够,“IUSR_机器名”这个用户是用来匿名访问网站的用户,一般来说在本机调试的时候,访问自己硬盘的时候用的就是这个用户。

那就重新设定一下目录的权限就可以了,在winxp下“安全”选项卡默认是不显示的,你可以按照下面的提示开启:

“我的电脑”-“工具”-“文件夹选项”-“查看”-“使用简单文件共享(推荐)”。 去掉“使用简单文件共享(推荐)”前面的对号。

Internet来宾帐户(名字格式为“IUSR_机器名”)按照上面的提示添加就可以了。

我安装以上的方式进行了设置,但是很遗憾,问题还是存在,郁闷了半天。

后来尝试了另外一种方式,上面的方案是给IIS匿名用户附上足够的权限,既然我赋上了还是不行,那么我干脆给所有用户都附上足够的权限。于是我在上面选择用户的时候,我选择了everyone,然后按照同样的方式,给everyone附上全部的权限,结果问题解决了。

问题已经解决,心中很惊喜,特此留证记录。

这里很疑惑,IIS是设置成通过匿名用户访问的,为什么给匿名用户附上权限还是不行,非要给everyone附上权限才行?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐