Anonymous Users Cannot Contribute
Further investigation on my site, which was exhibiting the same issue as that noted by Keith Sorbo, showed that there was no 'user 0' record in the Drupal users table.

This page - https://www.drupal.org/node/1029506 - offers various options about how to reinstate a 'user 0' record in the Drupal database.

Once I had a 'user 0' record the CiviCRM contribution page worked as expected.