2012-09-11 10 views
6

Desidero utilizzare SQL Server Service Broker per generare un messaggio (all'interno di SQL Server) e leggerlo in un'app esterna di C#.È possibile accedere a SQL Server Service Broker da un'app C#?

Sono limitato a Windows 2003 con SQL Server 2005. Ho letto un sacco di articoli, che alludono a questa possibilità, ma non vedo un esempio da nessuna parte. È possibile?

+0

Ci scusiamo per l'idea costruttiva della domanda, volevo solo sottolineare che SQL Server 2005 non ha nemmeno un supporto esteso in un anno, quindi la codifica di qualcosa di nuovo potrebbe essere qualcosa da riconsiderare. –

+0

sta eseguendo un'opzione sproc? – JeffO

+0

@JeffO Sì, posso eseguire uno sproc, ma il punto dell'esercizio non è quello di eseguire il polling del database per gli eventi, ma piuttosto di riceverli nell'app C#. – AngryHacker

risposta

3

T-SQL ha istruzioni per l'accesso a Service Broker: SEND, RECEIVE e altri. È possibile utilizzare ADO.NET per eseguirli.

+0

Che cosa ha a che fare SSMS con il broker di servizi? Mi sto perdendo qualcosa? – AngryHacker

+0

@AngryHacker, penso che la mia risposta non sia molto chiara. Lasciatemi fare una domanda: perché la tua app C# non può leggere gli eventi eseguendo un'istruzione RECEIVE? – usr

+1

@AngryHacker: Service Broker è interamente contenuto in SQL Server. Si utilizza T-SQL (['INVIA'] (http://msdn.microsoft.com/en-us/library/ms188407.aspx), [' RECEIVE'] (http://msdn.microsoft.com/en -us/library/ms186963.aspx)) e si scambiano messaggi da un'istanza di SQL Server a un'altra istanza di SQL Server. Non è possibile inviare messaggi a un'applicazione C#, ma * è possibile * inviare messaggi a una coda (ospitata in SQL Server) da cui l'applicazione C# legge i messaggi. –

Problemi correlati