Now it WON'T run differently under debugger
Scott Hanselman has blogged recently about our experience with nasty tricks Visual Studio debugger can play on you. Turns out, it's possible to run and debug normally without resorting to a secondary thread spin-off. But there is a price to pay: remote debugging for web services must be disabled. Add this to your app.config:
<configuration>
<system.diagnostics>
<switches>
<add name="Remote.Disable" value="1" />
</switches>
</system.diagnostics>
</configuration>
Sweet.