相关疑难解决方法(0)

HttpListener:请求的地址在此上下文中无效

使用创建HttpListener对象时

var server = new HttpListener();
server.Prefixes.Add("http://*:8080/");
server.Start();
Run Code Online (Sandbox Code Playgroud)

一切正常。但是,当我使用

var server = new HttpListener();
server.Prefixes.Add("http://demindiro.com:8080/");
server.Start();
Run Code Online (Sandbox Code Playgroud)

它抛出System.Net.Sockets.SocketException (0x80004005): The requested address is not valid in this context(下面的完整堆栈跟踪)。

在查询了异常之后,很明显它与所使用的地址有关。在探究HttpListenerEndPointManagerMono源代码之后,我确定问题可能出在代码的这一部分(位于GetEPListener处):

static EndPointListener GetEPListener (string host, int port, HttpListener listener, bool secure)
{
    IPAddress addr;
    if (host == "*")
        addr = IPAddress.Any;
    else if (IPAddress.TryParse(host, out addr) == false){
        try {
#pragma warning disable 618
            IPHostEntry iphost = Dns.GetHostByName(host);
#pragma …
Run Code Online (Sandbox Code Playgroud)

c# mono http

5
推荐指数
2
解决办法
1093
查看次数

标签 统计

c# ×1

http ×1

mono ×1