2012-09-11 26 views
6

Quiero utilizar SQL Server Service Broker para generar un mensaje (dentro de SQL Server) y para que se lea en una aplicación C# externa.¿Es posible acceder a SQL Server Service Broker desde una aplicación C#?

Estoy limitado a Windows 2003 con SQL Server 2005. He leído un montón de artículos que aluden a esta posibilidad, pero no veo ningún ejemplo. es posible?

+0

Disculpe por no tener una idea constructiva sobre la pregunta, solo quería señalar que SQL Server 2005 ni siquiera tiene soporte extendido en un año, por lo que codificar algo nuevo puede ser algo para reconsiderar. –

+0

¿Está ejecutando una opción sproc? – JeffO

+0

@JeffO Sí, puedo ejecutar un sproc, pero el objetivo del ejercicio no es sondear la base de datos en busca de eventos, sino recibirlos en la aplicación C#. – AngryHacker

Respuesta

3

T-SQL tiene declaraciones para acceder a Service Broker: ENVIAR, RECIBIR y otros. Puede usar ADO.NET para ejecutarlos.

+0

¿Qué tiene que ver SSMS con el agente de servicios? ¿Me estoy perdiendo de algo? – AngryHacker

+0

@AngryHacker, creo que mi respuesta no es muy clara. Déjame hacerte una pregunta: ¿por qué tu aplicación C# no puede leer eventos al ejecutar una instrucción RECEIVE? – usr

+1

@AngryHacker: Service Broker está completamente contenido en SQL Server. Utiliza T-SQL (['SEND'] (http://msdn.microsoft.com/en-us/library/ms188407.aspx), [' RECEIVE'] (http://msdn.microsoft.com/en -us/library/ms186963.aspx)) e intercambia mensajes de una instancia de SQL Server a otra instancia de SQL Server. No puede enviar mensajes a una aplicación C#, pero * puede * enviar mensajes a una cola (alojada en SQL Server) desde la cual la aplicación C# lee el mensaje (s). –

Cuestiones relacionadas