Had the solenoids cleaned by dealer under warranty about a year ago after I took it in for intermittent "service engine soon" light. At that time they cleaned them and changed oil.
Took the car back in two weeks ago (car not under warranty) with rough idle and intermittent light. Main source of rough idle was a bad ignition coil which I replaced myself for $60 (dealer wanted $300). They wanted to replace both solenoids for $600 since they had already tried to clean once. I took it home, removed the solenoids, blew out with compressor air and applied a lot of WD40. I put them back on, changed the oil & filter and have not had a light since.