Here are some helps for this error that I got today:
Error: a non transactional scope 'unnamed' may not contain a transactional scope 'Transaction_3"

When you click on the error in the Visual Studio Error list, it should take you to one of the scopes involved in the error.

In my case, I had a Scope’s Transaction Type set to “None”, and I needed to change it to “Long Running”.  Inside that Scope, I had a small Atomic scope, that had to be used to have an instances of a class that was not serializeable.

One thing you can do is to make debugging easier is to label your scopes, and manually set the “Transaction Identifier”.

For example: Scope_A_Call_WebService_MyMethod1, then set the “Transaction Identifier” to Transaction_A.
Then when you get the error, you can easily tell which Transaction ties to which Scope.

The scope will be “unnamed” if you set “Transaction Type” to “None”.

You can use the Orchestration Viewer to fairly easily see how the Scopes are nested.

 

 

 

Filed under: Orchestrations