>I would like to create a web service to support installations of our main application in the field and handle things like logging errors, providing version notification, updates, activation keys, etc.
>
>A single general purpose application that accepts encrypted messages and distributes tasks seems easier to maintain than several. Since it doesn't have to be up absolutely 100% of the time, it can be stopped for updates.
>
>I need guidance on how to go about it from the ground up.
I was using an approach like that when I was working on a version of the Universal Thread Navigator which never saw the light of day. :) But, the Web Service and the client were talking to each other to synchronize meta data locally if it was unsynchronized with the server. A Web Service turned out to be ok in this case as it was already there processing the data for the Universal Thread Navigator. Maybe something like that could be applicable in your case as well.