此问题相同的情况,即使防火墙关闭并注册了所有前缀,HttpListener也不会收到远程请求,即:
- HttpListener 仅接收来自同一台计算机的请求
- 应用程序在 Windows EC2 实例上运行(与其他问题的规格相同(
- 正在使用的端口在防火墙中注册并打开(我还暂时关闭了防火墙以确保这不是问题(
- 我使用的前缀是 http://*:8080/
与其他问题的区别:
- EC2 的安全组配置正确
- 它接受外部请求,直到(据我所知(今天,我不知道任何系统更改(但我对所有想法都持开放态度(
附加信息:
- EC2 实例和系统正在通过所有状态检查
- 我重新启动了实例;没有变化
- 发回(不是从我的服务器应用程序,而是从系统(发送到远程客户端的 http 状态代码是 503(服务不可用(
- 我已经检查并重新检查了 URL 是否正确(我有一个弹性 IP 地址,并且正在使用 URL 中实例的公有 DNS(
- 我运行了netstat以确保该端口未被其他进程使用
完全欢迎任何检查或尝试的想法;我几乎没有想法了...
如果同一端口上有多个 urlacl,例如:
$ netsh http show urlacl
Reserved URL : http://+:8080/
User: PUBENmyself
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)
由于列表中的第一个预订,您将获得服务不可用。要修复,
netsh http delete urlacl url=http://+:8080/
或者只是使用 Suave.io,省去头痛。
几个想法,有些你可能已经检查过了:
-
确保你仍然可以在机器上本地点击侦听器 - 只是为了找出代码迭代本身的错误
-
确保该计算机上的该端口上没有其他任何运行
-
检查事件查看器 - 其中是否有任何可能适用的错误? 其他活动? 最近的Windows更新 - 什么?
-
尝试其他端口 - 要排除端口冲突,请尝试其他端口
-
确保您绑定到前缀:http://*:{your-port-#-here}/- 此外,当您进行调用时,HttpListener 可以非常具体,如果您在注册的前缀中包含尾部斜杠,请确保在调用中包含该斜杠等。
-
当您尝试访问计算机时 - 您使用的地址是什么:EC2 弹性 IP 地址、EC2 公有 DNS、已路由到该计算机的某个 DNS 名称? 我以前见过 EC2 机器在重新启动后更改公有 IP/DNS,也许您的机器已经更改了?
这就是我现在能想到的。 祝你好运。