Another suggestion. I've had to do this on a few occasions because the Edge-on-Surface Constraint is not general enough to allow the use of an Axis in the Component. It's a little screwy, but here goes: create a small flat surface (which you can permanently hide) with one of its edges along the axis you want to use, then use that edge for the Edge-on-Surface constraint.