The type X has multiple constructors of length 1. Unable to disambiguate

By convention, Unity prefers the constructor with the longest parameter list if no other configuration was supplied. Having two constructors with parameter list of equal length creates an ambiguity, so Unity throws an exception. That's why it cannot resolve the control you are using.

You can explicitly tell Unity which constructor to prefer:

container.RegisterType<IService, Service>(new InjectionConstructor(typeof(IServiceDependency)));

You can use the [InjectionConstructor] attribute on the contructor wanted