I got this error, add full control for all user on $SDEHOME and I got the same error.
Then I check if the user that run the service that start the program using arcobjects code, then I see that the user who has the permission to run this service was deleted.
Then I change for an user that exist and had permission and works fine.
Soooo... as usually the message error could betray you.