它出现在这里:
SyncAdapter notesSyncAdapter = notesBuilder.ToSyncAdapter();
((SqlParameter)notesSyncAdapter.SelectIncrementalInsertsCommand.Parameters["@sync_last_received_anchor"]).DbType = System.Data.DbType.Binary;
((SqlParameter)notesSyncAdapter.SelectIncrementalInsertsCommand.Parameters["@sync_new_received_anchor"]).DbType = System.Data.DbType.Binary;
用户拥有表,架构和数据库的所有权限。 知道这还会抛出这个异常吗?
更多细节: SQLiteConnectionStringBuilder builder = new SQLiteConnectionStringBuilder();
builder [“Data source”] =“achernar”; builder [“User ID”] =“sbbf974”; builder [“密码”] =“不管”; builder [“Integrated Security”] = false; builder [“Initial Catalog”] =“sticky”;
答案 0 :(得分:2)
问题在于用户,正如Abe所猜测的那样。 用户是dbo,这意味着虽然它应该具有所有权限,但它没有。 所以我所做的就是创建另一个登录,我给了它以下数据库角色:public,db_datareader,db_datawriter。 它现在有效。
答案 1 :(得分:1)
您是否绝对肯定您的代码和数据库已正确同步?如果你能推荐你的同事检查以下内容。有时,一双新鲜的眼睛可以捕捉到你一直在忽视的东西......
我知道这听起来可能很明显,但我会说让别人仔细检查你是值得的。我知道我之前已经被这个抓住了......
答案 2 :(得分:0)
谁是'用户'?我非常信任SQL Server,它明确指出当前连接没有权限。同步框架通过IIS和ISAPI经过多个层,直到它到达数据库,因此您可以更好地确定使用的凭据。 IIS层是否存在模仿?受限制的代表团?同步框架客户端是否使用什么(NTLM / Digest / Basic / Nothing)对IIS进行身份验证?
答案 3 :(得分:0)
尝试删除
Trusted_Connection=True;
或
Integrated Security=True;
从您的C#代码的连接字符串中获取。