因此,我们有一个大型程序,它使用HttpListener进行小型远程管理功能.由于我不理解的原因,有些人遇到503错误的问题.
由于我们没有提供错误,因此框架中发生了一些事情.现在,我的问题是,框架内部提供了什么错误?是前缀没有正确设置还是什么?
我们目前的前缀设置为"http://*:8080 /".
建议吗?
我试图在C#中编写一个非常非常简单的自定义Http服务器。
.Net提供的连接代码很简单:
// get our IPv4 address
IPAddress[] localIPs = Dns.GetHostAddresses(Dns.GetHostName());
IPAddress theAddress = localIPs.Where(ip => ip.AddressFamily == AddressFamily.InterNetwork).FirstOrDefault();
// Create a http listener.
var listener = new HttpListener();
string myUrlPrefix = $"http://{theAddress.ToString()}:{port}/MyService/";
listener.Prefixes.Add(myUrlPrefix);
Console.WriteLine($"Trying to listen on {myUrlPrefix}");
listener.Start();
Console.WriteLine("Listening...");
HttpListenerContext context = null;
try
{
context = listener.GetContext();
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
HttpListenerRequest request = context.Request;
Run Code Online (Sandbox Code Playgroud)
运行此命令时,将GetContext()阻塞,从不返回,也不会引发异常。
listener.Start() works -- the URL is properly reserved for the correct user with 'netsh http add urlacl...'., …