QueueConnection.Publish accepts an acknowledgement function

This can be managed by the caller to deal with cases where publishing
a message has failed.