We calculate the energy spectrum for 8B dissociation on a Pb target to all orders in the Coulomb and nuclear fields, and show that the slope of S17(E) obtained in previous analyses of Coulomb dissociation data is too steep, due to deficiencies in the conventional first-order analysis that was used. With a more complete theory that avoids the far-field approximation and includes E2, nuclear and dynamical projectile polarization, the disagreement between indirect and direct methods for determining the S17(E) slope and the extrapolated S17(0) values is reduced significantly.