都是XP惹的祸.个人认为XP过度的追求安全性,而以具体功能无法实现作为代偿.下面来看看这个ASP例子,相信经常接触ASP的人会时常碰到这个问题:明明自己的代码写的非常正确,为什么就是不能正常更新呢?以下几个错误信息不是因为ASP本身的代码错误导致的,而是一些权限的设置问题.开始我碰到这个问题的时候,曾经自习检查自己代码不下10遍,就是没检查出ASP的错误来.最后上网查了查才发现是万恶的权限作祟.
运行环境:windows xp
IIS 5.0
--------------------------------------------------------------------
在Windows XP+IIS服务器上运行asp程序可能会出现数据库无法更新的情况,具体错误信息可能为:
1、Microsoft JET Database Engine (0x80040E09) 不能更新。数据库或对象为只读
2、Microsoft OLE DB Provider for ODBC Drivers (0x80004005)[Microsoft][ODBC Microsoft Access Driver] 操作必须使用一个可更新的查询。
3、Microsoft JET Database Engine (0x80004005) 操作必须使用一个可更新的查询。
解决办法有以下几种(针对不同的服务器可能解决办法不一样,在这里假设网站主目录为wwwroot):
A、在wwwroot文件夹上面点击右键-“属性”-取消“只读”
此方法最简单、偶尔有效
B、在您的数据库文件上文件夹上面点击右键-“属性”-“安全”-添加用户:“IUSR_计算机名” 并开放“IUSR_计算机名”的读取、写入权限
此方法是目前解决这个问题最好的办法,一般都可以解决问题
XP系统下可能点击右键看不到“安全”选项,请先打开“工具”-“文件夹选项”-“查看”-取消“使用简单文件共享(推荐)” 然后即可在属性中找到“安全”选项
C、在wwwroot文件夹上面点击右键-“属性”-“web共享”-“共享文件夹”