Kub*_*nta 9 c# sql sql-server sqldependency
我有一个SqlTableDependency的问题.当我对欲望表进行插入/更新/删除时,不会调用My Changed方法.OnStatusChanged事件工作正常.
string conn = @"data source=secret server; integrated security=True; initial catalog=secret db;User id=secret user";
var mapper = new ModelToTableMapper<SqlDataModel>();
mapper.AddMapping(c => c.datavalue, "datavalue");
using (var dep = new SqlTableDependency<SqlDataModel>(conn, "data", mapper))
{
dep.OnChanged += Changed;
dep.OnStatusChanged += OnStatusChanged;
dep.OnError += OnError;
dep.TraceLevel = TraceLevel.Verbose;
dep.TraceListener = new TextWriterTraceListener(Console.Out);
dep.Start();
Console.WriteLine("Press a key to exit");
Console.ReadKey();
dep.Stop();
}
}
static void OnStatusChanged(object sender, StatusChangedEventArgs e)
{
Console.WriteLine(e.ToString());
}
static void OnError(object sender, ErrorEventArgs e)
{
Console.WriteLine(e.ToString());
}
static void Changed(object sender, RecordChangedEventArgs<SqlDataModel> e)
{
if (e.ChangeType != ChangeType.None)
{
var changedEntity = e.Entity;
Console.WriteLine("DML operation: " + e.ChangeType);
Console.WriteLine("value: " + changedEntity.datavalue);
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码我基于https://tabledependency.codeplex.com/wikipage?title=SqlTableDependency 我相信我有,我正在使用db_owner角色.我启用了代理,我看到在mssql db中创建了trigers,services等.
我在sys.transmission_queue表中最终发现错误:在目标队列中排队消息时发生异常.错误:
15517,状态:1.无法作为数据库主体执行,因为主体"dbo"不存在,此类主体不能被模拟,或者您没有权限.
即使数据库已经给了我完全的许可,我还没有做
ALTER AUTHORIZATION ON DATABASE::secret db TO sa
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6376 次 |
最近记录: |