WCF wsdualhttpbinding client sin elevación

He creado un servicio de Windows (servidor) y un WPF (cliente) que utiliza la función de devolución de llamada wsdualhttpbinding de WCF. Todo entre las dos piezas de software funciona correctamente, pero el problema que tengo es que el cliente necesita ejecutar privilegios elevados de administrador para funcionar (lo cual es comprensible porque tiene que abrir puertos para comunicarse con el servidor)

¿Hay alguna forma de configurar el cliente para que funcione sin elevación? ¿O tal vez cree una conexión permanente única para que el cliente no necesite ser elevado en todo momento?

Me estoy quedando sin ideas y términos de búsqueda de Google.

ACTUALIZAR

He encontrado una solucion. ¡Corríjame si hay otra mejor práctica que pueda seguir!

Agregué los botones 'Activar' y 'Desactivar' a la aplicación cliente que ejecuta netsh para abrir (o cerrar) y reservar un puerto.

Habilitar

Process process = new Process();
process.StartInfo = new ProcessStartInfo("netsh", @"http add urlacl url=http://+:" + PortNumber + @"/ user=DOMAIN\username");
process.StartInfo.Verb = "runas";
process.Start();
process.WaitForExit();

Inhabilitar

Process process = new Process();
process.StartInfo = new ProcessStartInfo("netsh", "http delete urlacl url=http://+:" + PortNumber + "/");
process.StartInfo.Verb = "runas";
process.Start();
process.WaitForExit();

Respuestas a la pregunta(2)

Su respuesta a la pregunta