If you control both ends of the wire, you can achieve what you want.
There is a TransactionInterop class to provide support for working with transactions between process boundaries using MS DTC.
It contains two methods that are interesting to your scenario:
You can use the first method in your client to create a transaction. You can set it as a custom header value or cookie to transfer it to the service. After using the service, you can use the second method to create the transaction locally.
The main caveat is that MS DTC will need to be activated and configured on the client and server. This is really achievable if your services are invoked in a Windows Active Directory domain.
source share