HttpListener Accès Refusé

Je suis en train d'écrire un serveur HTTP en C#.

Lorsque j'essaie d'exécuter la fonction HttpListener.Start() - je obtenir une HttpListenerException disant

"Accès Refusé".

Quand je lance l'application en mode administrateur sous windows 7, il fonctionne très bien.

Puis-je le faire fonctionner sans le mode admin? si oui, comment?
Si non, comment puis-je faire de l'app passer en mode administrateur) après le début de l'exécution?

using System;
using System.Net;

namespace ConsoleApplication1
{
    class Program
    {
        private HttpListener httpListener = null;

        static void Main(string[] args)
        {
            Program p = new Program();
            p.Server();
        }

        public void Server()
        {
            this.httpListener = new HttpListener();

            if (httpListener.IsListening)
                throw new InvalidOperationException("Server is currently running.");

            httpListener.Prefixes.Clear();
            httpListener.Prefixes.Add("http://*:4444/");

            try
            {
                httpListener.Start(); //Throws Exception
            }
            catch (HttpListenerException ex)
            {
                if (ex.Message.Contains("Access is denied"))
                {
                    return;
                }
                else
                {
                    throw;
                }
            }
        }
    }
}
  • Si quelqu'un veut éviter cette erreur, il peut essayer de l'écrire avec TcpListener. Il ne nécessite pas de privilèges d'administrateur