2016-12-15 1 views
4

SqlTableDependency에 문제가 있습니다. My Changed 메서드는 테이블을 삽입/업데이트/삭제할 때 호출되지 않습니다. OnStatusChanged 이벤트가 정상적으로 작동합니다.SqlTableDependency onchange 이벤트가 실행되지 않는다

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); 
    } 
} 

은 위의 코드 나는 내가 가지고있는 것을 확신 https://tabledependency.codeplex.com/wikipage?title=SqlTableDependency 에 따라 그리고 난 db_owner 역할을 사용하고 있습니다. 나는 중개인을 활성화했다, 나는 trigers를 본다, 서비스 etc.는 mssql db에서 창조된다.

enter image description here

+2

가 SqlTableDependency이 https://github.com/christiandelbianco/monitor-에 지금주의해야 아직했다 table-change-with-sqltabledependency –

답변

4

나는 finnally 내의 sys.transmission_queue 테이블에서 오류를 발견 : 대상 큐에 메시지를가 대기 상태 동안 예외가 발생했습니다. 오류 :

15517, State: 1. Cannot execute as the database principal because the principal "dbo" does not exist, this type of principal cannot be impersonated, or you do not have permission.

데이터베이스가 이미 나 자신에게 전체 권한을 주었다하더라도, 나는

ALTER AUTHORIZATION ON DATABASE::secret db TO sa 
관련 문제