After dozens of tries to fix this, it turned out I needed to do THREE things! - -switch to a dishwasher detergent that has phosphates. The old Cascade is now sold online under the name Cascade "Fryer Boil-out". -hire a plumber to attach the drain hose under the sink to the back wall of my under-sink cabinet -hire an EXPERIENCED dishwasher installer to re-install my dishwasher. I could have had him do the second step had I realized our builder installed our dishwasher incorrectly 6 years ago. The smell started after a year or so. Turns out the drain hoses were at the wrong level so that every time we used our garbage disposal, ground food was backing up into the dishwasher drain hoses. The dishes were clean, but the old food in the hoses was decaying. DISGUSTING! I can't believe that installers don't care enough to read the installation instructions that come with the dishwasher... or maybe they assume all dishwashers are the same. It is SO wonderful to have that smell GONE for good!
After five years of wrestling with this problem, we finally hired an experienced professional with 40 years' appliance installation experience. He found that the builder's subs had not installed the dishwasher properly 6 years ago, and had not followed the manufacturer's instructions as to the location and height of the drain hoses. Debris from the disposal had been backing up into the drain hoses and rotting there. Our dishes were very clean and safe since the gunk was in the drain hoses, but the smell was horrible. We had tried so many other solutions over the years and they each helped a bit so we had thought we were done with the problem, but now I know we are. The hoses he replaced looked like clogged arteries.