I agree with the heated cable, but under no circumstance should you fasten these cables to the roof, this will only cause more damage to your roof and deck from build ups and water flow interuptions. Here is my solution...
Check to make sure eavestrough is on the right slant/slope towards the downspout/exit. Then simply run the heated cables through the eavestrough and downspout repeatedly (if you have the water dismisal at the base make sure to have the cable runs out the end, and for city dismisal then make sure it runs at least to 2-3 feet into the ground ). This will keep bottom from freezing causing damge in the downspout (bursting) and backing up of ice and water that has nowhere to exit but over the side onto walkways and foundations. This can cause a safety hazard and another ice daming / ice jacking problem in the foundation, which is obviously very costly.