C# HTTP 服务器访问被拒绝
Posted
技术标签:
【中文标题】C# HTTP 服务器访问被拒绝【英文标题】:C# HTTP Server Access Denied 【发布时间】:2021-03-22 09:21:36 【问题描述】:所以我正在用 C# 在我的电脑上创建一个本地服务器。当我在http://localhost:8000
上运行它时,服务器响应并且工作正常,但是当我尝试在 LAN IP 地址http://192.168.1.113:8000
上使用它时,它给了我一个访问错误。
An unhandled exception of type 'System.Net.HttpListenerException' occurred in System.Net.HttpListener.dll: 'Access is denied.'
at System.Net.HttpListener.AddPrefixCore(String registeredPrefix)
at System.Net.HttpListener.AddAllPrefixes()
at System.Net.HttpListener.Start()
at HttpListenerExample.HttpServer.Main(String[] args) in C:\Users\abram\Desktop\Code\C#\myProgram\Program.cs:line 100
我已尝试进行 URL 预订:netsh http add urlacl url=http://+:8000/myProgram user=abram
这无济于事。 有人有这方面的经验吗?
【问题讨论】:
【参考方案1】:您需要允许端口 8000 通过 Windows 防火墙。
【讨论】:
【参考方案2】:您在调用netsh http add urlacl
时保留的URL 需要与您添加到HttpListener
的前缀完全匹配。 HttpListener
前缀需要以斜线结尾。所以你的代码应该看起来像这样:
httpListener.Prefixes.Add("http://+:8000/myProgram/");
你的命令应该是这样的:
netsh http add urlacl url=http://+:8000/myProgram/ user=abram
如果您对任一 URI 进行任何更改,您需要在命令中反映该更改。
您还需要确保
abram
是域/机器上的有效用户。
此外,您可能需要查看 Grapevine 5 以运行本地服务器。
【讨论】:
以上是关于C# HTTP 服务器访问被拒绝的主要内容,如果未能解决你的问题,请参考以下文章