Sorry if this is overstating the obvious...
- Are you sure this line of code is being executed?
- As RobS suggests do any of the other SystemSounds play?
I had a look in reflector. Whichever of the SystemSounds you call returns a SystemSound instance initialised with the type (e.g. 0x40 for Asterix) for the system sound you want to play. This is then passed to the Win32 bool MessageBeep( int type ) method. Imported as:
[DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true)]
internal static extern bool MessageBeep(int type);
The bool return isn't preserved in any way - i.e. you can't get it :(
Exceptions are not swallowed so you should get any if thrown.
Hope that helps (though probably just telling you what you already know)