以常规用户身份运行此代码会引发HttpListenerException(访问被拒绝). Snippet作为管理员运行正常
class Program { static void Main(string[] args) { HttpListener listener = new HttpListener(); listener.Prefixes.Add("http://myip:8080/app/"); listener.Start(); //.... and so on } }
我继续使用netsh(netsh http show list uri)添加了uri
netsh http add urlacl url=http://+:8080/app user=domain\user
仍然得到相同的错误.添加ACL确实适用于其他项目(他们没有使用HttpListener).我尝试了多个端口/应用程序名称组合,没有任何作用.
任何想法可能是什么原因?
在Vista上运行.Net 3.5 SP1
我不明白为什么这里是这样的.看来原因是我的网卡配置了2个IP.
如果在代码中我指定了其中一个ips(就像我上面提到的那样)
listener.Prefixes.Add("http://myip1:8080/app/");
netsh http add urlacl url=http://myip1:8080/app user=domain\user
listener.Prefixes.Add("http://+:8080/app/");
netsh http add urlacl url=http://+:8080/app user=domain\user
那么没有错误,我可以从两个ip访问我的应用程序.