Назад | Перейти на главную страницу

Mono HttpListener требует root?

если я попытаюсь запустить свою программу, использующую HttpListener без root, она выдаст это исключение.

Unhandled Exception: System.Net.Sockets.SocketException: Access denied
  at System.Net.Sockets.Socket.Bind (System.Net.EndPoint local_end) [0x00000] in :0
  at System.Net.EndPointListener..ctor (System.Net.IPAddress addr, Int32 port, Boolean secure) [0x00000] in :0
  at System.Net.EndPointManager.GetEPListener (System.Net.IPAddress addr, Int32 port, System.Net.HttpListener listener, Boolean secure) [0x00000] in :0
  at System.Net.EndPointManager.AddPrefixInternal (System.String p, System.Net.HttpListener listener) [0x00000] in :0
  at System.Net.EndPointManager.AddListener (System.Net.HttpListener listener) [0x00000] in :0

Как я могу разрешить использование HttpListener пользователям, кроме root?

Если вы хотите, чтобы он прослушивал порт 80, он должен быть запущен пользователем root. Если вас устраивает прослушивание порта> 1024, то любой пользователь сможет запустить его.

Если вы хотите, чтобы другие пользователи могли запускать это прослушивание на порту 80, вам необходимо разрешить им запускать его через sudo.