I am having a client app drop the message into a private queue named MsmqService/MsmqService.svc.
In IIS Under default web site,I added the wcf service with the net.msmq binding.
I made sure the queue was set to transactional
The following is the relevant config portion on both the client app and wcf.
<system.serviceModel>
<bindings>
<netMsmqBinding>
<binding name="MsmqBindingNonTransactionalNoSecurity" exactlyOnce="false">
<security mode="None"/>
</binding>
<binding name="MsmqBindingNonTransactionalTransportSecurity" exactlyOnce="false">
<security mode="Transport"/>
</binding>
<binding name="MsmqBindingTransactionalTransportSecurity" exactlyOnce="true" receiveErrorHandling="Move">
<security mode="Transport"/>
</binding>
</netMsmqBinding>
</bindings>
<services>
<service name="MsmqService.MsmqService">
<endpoint address="net.msmq://localhost/private/MsmqService/MsmqService.svc" binding="netMsmqBinding"
bindingConfiguration="MsmqBindingTransactionalTransportSecurity" contract="MsmqContract.IMsmqContract"/>
</service>
</services>
</system.serviceModel>
I had the net.msmq under enabled protocols for the default web site and under enabled protocols for the wcf service