SQL Service Broker 

After trying to receive a message from a service broker queue for a while I found that it will not throw an error if your database isn’t setup correctly. After looking in the table where the messages are stored before they are sent to the queue the solution was easily found

The Error

An exception occurred while enqueueing a message in the target queue. Error: 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.

Where messages are stored before they are sent to queue, and any exceptions which occurred

select * from sys.transmission_queue

Fix

USE [database_name]
ALTER DATABASE [database_name]SET TRUSTWORTHY ON
ALTER DATABASE [database_name] SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE
ALTER AUTHORIZATION ON DATABASE::[database_name] TO [SA];

Developer.com provides a good simple introduction to Service Broker
http://www.developer.com/db/article.php/3640771