我有一个wcf 4服务正在尝试将记录添加到同一服务器上的visual fox pro dbf文件中。当它尝试执行插入时,我得到“无法更新游标USER,因为它是只读的。”
我认为这是权限问题。如何授予wcf服务更新dbf文件的权限?
这适用于我的开发机器。
以下是一些代码:
OleDbConnection oConn = new OleDbConnection("provider=vfpoledb;Data Source="\\data\\tt.dbc");
oConn.Open();
OleDbCommand oCommand = new OleDbCommand();
oCommand.Connection = oConn;
oCommand.CommandText = "SET NULL OFF\r\nSET DELETED ON";
oCommand.ExecuteNonQuery();
OleDbCommand mycmd = new OleDbCommand("insert into user (lastname,firstname) values ('Doe','John')", oConn);
mycmd.CommandType = CommandType.Text;
lnRet = mycmd.ExecuteNonQuery();
答案 0 :(得分:0)
这不是权限问题 - 会产生访问被拒绝错误。
要检查两件事:
文件是否标记为只读?
该文件是否被其他进程使用?
我认为#2更有可能 - 我还没有完成FoxPro,但我用Clipper做了很多dBase,并且至少在dBase下文件必须独占打开(即不共享)插入/更新/删除。
答案 1 :(得分:0)
您需要验证用于运行WCF服务的凭据是否具有对数据UNC路径的读/写访问权限。