如果我尝试以非 root 身份运行使用 HttpListener 的程序,它会引发此异常。
未处理的异常:System.Net.Sockets.SocketException:访问被拒绝 在 System.Net.Sockets.Socket.Bind (System.Net.EndPoint local_end) [0x00000] 中:0 在 System.Net.EndPointListener..ctor (System.Net.IPAddress 地址、Int32 端口、Boolean 安全) [0x00000] 中:0 在 System.Net.EndPointManager.GetEPListener (System.Net.IPAddress 地址、Int32 端口、System.Net.HttpListener 侦听器、Boolean 安全) [0x00000] 中:0 在 System.Net.EndPointManager.AddPrefixInternal (System.String p,System.Net.HttpListener 侦听器) [0x00000] 中:0 在 System.Net.EndPointManager.AddListener (System.Net.HttpListener 侦听器) [0x00000] 中:0
我如何允许除 root 之外的用户使用 HttpListener?
答案1
如果您希望它监听端口 80,则需要由 root 用户启动它。如果您同意它监听大于 1024 的端口,则任何用户都应该能够启动它。
如果您希望其他用户能够启动对端口 80 的监听,那么您需要允许他们通过 sudo 运行它。