Answer
Enable Crystal Web Service's debug logging and collect the resulting logs — that's the fastest way to see the real underlying error rather than the generic CWS failure message. One easy trap to avoid: make sure the IIS_IUSRS Windows user group has write access to the configured log location first, since without that the debug logs will come back empty (showing only boilerplate placeholder text) even with debug logging turned on, making it look like nothing was captured.