首页 > 解决方案 > ASP.NET 无法绑定到所有接口

问题描述

我尝试创建一个 asp.net 服务;如果我尝试在本地访问它,它会起作用。但不可能从远程位置到达它。

在我用来实例化服务器的代码下方:

using System;
using System.Web.Http;
using System.Web.Http.SelfHost;
using System.Configuration;

namespace RESTService
{
  public class Service : IDisposable
  {
    private HttpSelfHostServer server;

    public Service()
    {
      var config = new HttpSelfHostConfiguration($"http://*:{ConfigurationSettings.AppSettings["port"]}/");
      config.Routes.MapHttpRoute("TTS", "{controller}/{text}",
        new[] { "RESTService.Controller" });

      server = new HttpSelfHostServer(config);
    }

    public void Run()
    {
      server.OpenAsync().Wait();
    }

    public void Dispose()
    {
      server.Dispose();
    }
  }
}

Web API self host-bind on all network interfaces中所述,我将 localhost 替换为 * 。不幸的是,我用这段代码得到了一个 UriFormatException 。如何将服务绑定到所有接口?

标签: c#asp.net.net

解决方案


感谢 Lex Li;他的评论为我指明了正确的方向。以下代码有效:

new HttpSelfHostConfiguration($"http://{IPAddress.Any}:{ConfigurationSettings.AppSettings["port"]}/")

推荐阅读