.net – HttpListener.Start()Vista中的AccessDenied错误

前端之家收集整理的这篇文章主要介绍了.net – HttpListener.Start()Vista中的AccessDenied错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
以常规用户身份运行此代码会引发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/");

那么为了避免异常,我需要注册它与IP绑定弱通配

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访问我的应用程序.

猜你在找的Windows相关文章