我有一个使用 HttpListener 的独立应用程序,该应用程序在 Server 2008 上运行良好,但在 2012 年却惨遭失败。每次尝试连接时,我都会得到一些:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request - Invalid Hostname</h2>
<hr><p>HTTP Error 400. The request hostname is invalid.</p>
</BODY></HTML>
当我从该机器上的命令提示符连接到侦听器端口时,它工作正常(我得到了我期望的响应)。
防火墙配置正确,我什至在禁用防火墙的情况下尝试过。
我已经尝试了几乎所有可能的组合netsh http add urlacl
,包括:
http://+:n/ (n = port number)
http://*:n/
http://127.0.0.1:n/
http://localhost:n/
http://public_ip_address:n/
我也尝试过访问每个主机名。
还具有多种用户组合:
user=everyone
user=hostname\administrator
我已经单独尝试过它们,也尝试过没有配置任何一个。
结果是相同的,但响应在 503 和 400 之间反弹(与上述相同的响应正文)。
IIS 没有在这台机器上运行。没有端口冲突。每台机器都有一个全新的安装,只有这个应用程序。
快把我头上的头发扯掉。