【问题标题】:C# HTTP Server Access DeniedC# HTTP 服务器访问被拒绝
【发布时间】: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

这无济于事。 有人有这方面的经验吗?

【问题讨论】:

    标签: c# networking server permissions ip


    【解决方案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 以运行本地服务器。

      【讨论】:

        猜你喜欢
        • 2018-05-01
        • 2021-02-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-19
        相关资源
        最近更新 更多