c# - 第 2 轮 : HttpListener not receiving outside requests

标签 c# amazon-ec2 windows-server-2008-r2 httplistener http.sys

和这个问题一样的情况,HttpListener not receiving remote requests, even with the firewall down and all prefixes registered ,即:

  • HttpListener 只接收来自同一台机器的请求
  • 应用程序在 Windows EC2 实例上运行(与其他问题的规范相同)
  • 正在使用的端口已在防火墙中注册并打开(我还暂时关闭了防火墙以确保这不是问题所在)
  • 我使用的前缀是 http://*:8080/

与其他问题的区别:

  • EC2的安全组配置正确
  • 它一直在接受外部请求,直到(据我所知)今天,我不知道有任何系统变化(但我对所有想法持开放态度,无论如何)

附加信息:

  • EC2 实例和系统正在通过所有状态检查
  • 我重新启动了实例;没有变化
  • 发回(不是从我的服务器应用程序,而是从系统)到远程客户端的 http 状态代码是 503(服务不可用)
  • 我检查并重新检查了 url 是否正确(我有一个弹性 IP 地址,并且在 url 中使用实例的公共(public) DNS)
  • 我运行了 netstat 以确保该端口未被其他进程使用

任何关于检查或尝试的想法都是完全欢迎的;我的想法几乎用完了......

最佳答案

如果您在同一个端口上有多个 urlacl,例如喜欢:

$ netsh http show urlacl

Reserved URL            : http://+:8080/
    User: PUBEN\myself
        Listen: Yes
        Delegate: No
        SDDL: D:(A;;GX;;;S-1-5-21-436374069-1547161642-1177238915-5114)

Reserved URL            : http://192.168.47.120:8080/
    User: \Everyone
        Listen: Yes
        Delegate: No
        SDDL: D:(A;;GX;;;WD)

Reserved URL            : http://127.0.0.1:8080/
    User: \Everyone
        Listen: Yes
        Delegate: No
        SDDL: D:(A;;GX;;;WD)

由于列表中的第一个预订,您将获得 ServiceUnavailable。要修复,

netsh http delete urlacl url=http://+:8080/

或者只使用 Suave.io并避免让您头疼。

关于c# - 第 2 轮 : HttpListener not receiving outside requests,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10393306/

相关文章:

c# - 当线程池的可用工作线程总数为零时,线程池从哪里获取新线程?

amazon-web-services - 使用 Cloudformation 脚本创建 ec2 时如何分配特定的私有(private) IP(基于我的 CIDR 和子网预先确定的 IP)

amazon-web-services - AWS EC2 实例上的 Websocket 服务器在两天不活动后没有响应

mysql - 将 mysql 从 linux 转换为 windows 服务器

windows - 如何将 MS .NET Framework 4 添加到 Windows Server 更新服务?

c# - 序列化/反序列化 "NHibernate Session",延迟初始化错误 ("StateServer mode"集群)

c# - 使用 Entity Framework 处理 "Clear"所有表的更好方法

c# - 如何获取通过Azure函数事件中心触发器接收到的事件的messageId或eventId?

amazon-ec2 - 在 AWS 上构建 Lollipop AOSP 源

iis-7 - 使用 Powershell 3.0 在 2008 R2 和 IIS7 中启用/禁用处理程序映射