I'm planning on using asynchronous logging on the audit component of our current project. 

The OS documentation clearly says that the message queue is not persistent: "The message queue is non-persistent. This means that in case of a system failure, pending records and request events get lost."


This causes the audit function to be flawed by default.

Since this functionality uses MSMQ, and messages can be persistent (with the obvious performance hit), is there a way to change the default behavior? There is a property to set the recoverability of the message in case of a catastrophic failure like a system crash: https://msdn.microsoft.com/en-us/library/system.messaging.message.recoverable.aspx

One option would be to implement a custom Asynchronous Logging API, but we'd rather avoid that route for obvious reasons.

Thanks in advance,

Márcio Lima

Hi Márcio,

Why do you conclude MSMQ is used? I can't find that from the documentation.

Hi Kilian,

After analyzing the DLL's and experimenting with the service, we've concluded out that the platform is indeed using the MSMQ.