加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

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

发布时间:2020-12-13 20:15:49 所属栏目:Windows 来源:网络整理
导读:以常规用户身份运行此代码会引发HttpListenerException(访问被拒绝). Snippet作为管理员运行正常 class Program{ static void Main(string[] args) { HttpListener listener = new HttpListener(); listener.Prefixes.Add("http://myip:8080/app/"); listene
以常规用户身份运行此代码会引发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=domainuser

仍然得到相同的错误.添加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=domainuser

但是,如果我添加前缀与强通配符(加号)

listener.Prefixes.Add("http://+:8080/app/");

并使用相同的通配符进行注册

netsh http add urlacl url=http://+:8080/app user=domainuser

那么没有错误,我可以从两个ip访问我的应用程序.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读