I just stumbled on a nice "feature" that will have you scratching your head if you don't know it's there.  Apparently Microsoft changed the way the Async methods in a web service proxy get generated somewhere between VS 2003 and VS 2005.  

However, the project KNOWS if it's been "upgraded" from VS 2003 all the way to 2008 and generates the proxy with backward compatibility in place.  It wasn't until I started this rewrite and consumed the same web service that I noticed things MISSING from my proxy because, of course, this isn't an upgrade so they don't generate the old style async methods.

So here I was with my old and new solutions loaded side-by-side, regenerating the SAME web service reference and getting different results, and wondering ...  hhhhhhow?

So to be clear, BeginMyMethod and EndMyMethod style async methods are the "old" way and will not be generated until you  set a project level property WebReference_EnableLegacyEventingModel to be true.

Fortunately for me in this case, I can just abandon it and do it the 'new' way.

 

Here is the link to the article I found the answer on, though you will have to read through the comments a while to get there.

https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=288660