smv*_*lad 13 .net permissions windows-vista
以普通用户身份运行此代码会抛出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
}
}
Run Code Online (Sandbox Code Playgroud)
我继续使用netsh添加uri(netsh http show列出了uri)
netsh http add urlacl url=http://+:8080/app user=domain\user
Run Code Online (Sandbox Code Playgroud)
仍然得到同样的错误.添加ACL确实适用于其他项目(尽管他们没有使用HttpListener).我试过多个端口/应用程序名称组合,没有任何作用.
任何想法可能是什么原因?
在Vista上运行.Net 3.5 SP1
smv*_*lad 15
我不明白为什么,但在这里.似乎原因是我的网卡配置了2个IP.
如果在代码中我指定了一个ips(就像我上面提到的那样)
listener.Prefixes.Add("http://myip1:8080/app/");
Run Code Online (Sandbox Code Playgroud)
然后为了避免异常我需要用IP绑定的弱通配符注册它
netsh http add urlacl url=http://myip1:8080/app user=domain\user
Run Code Online (Sandbox Code Playgroud)
但是,如果我添加前缀与强通配符(加号)
listener.Prefixes.Add("http://+:8080/app/");
Run Code Online (Sandbox Code Playgroud)
并使用相同的外卡注册
netsh http add urlacl url=http://+:8080/app user=domain\user
Run Code Online (Sandbox Code Playgroud)
然后没有错误,我可以从两个IP访问我的应用程序.
| 归档时间: |
|
| 查看次数: |
12451 次 |
| 最近记录: |