ASP .NET Core 8.0 Web API:服务未按预期绑定到本地主机

问题描述 投票:0回答:1

我对这个问题已经摸不着头脑有一段时间了。我正在构建一个 ASP.NET MVC 5 应用程序(是的,我知道它是遗留的,但在我们现代化时需要一个短期解决方案)。这只是一个包装 API 的 Web 界面,因此逻辑在很大程度上是抽象的。用户界面不是问题,但我认为上下文可能会有所帮助。真正的问题在于 API。

我不太熟悉.NET 8.0 API开发的细节,所以请原谅我的无知。运行我的 API 可执行文件时,我的控制台中显示以下内容:

info: Microsoft.Hosting.Lifetime[14]
      Now listening on: http://[::]:5678
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Production
info: Microsoft.Hosting.Lifetime[0]
      Content root path: C:\Users\

首先,

http://[::]:5678
部分让我感到困惑。该代码本周早些时候运行,显示
http://localhost:5678
。这是 Kestrel/CORS 问题吗? [::] 是 localhost 的简写吗?它看起来确实像 IPv6 表示法,但我没有对我的系统进行任何表明 IPv6 首选项发生更改的操作。我尝试过重新启动 VS 2022、重新启动我的机器、重建/清理建筑等。所以我有点难住了。

我当前的 API

appsettings.json
非常接近现成的
appsettings.json
文件;也就是说它看起来像下面这样:

{
  "DetailedErrors": true,
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",
  "ApiUrl": "http://localhost:5678/"
}

API

Program.cs
文件如下所示:

public class Program
{
    public static void Main(string[] args)
    {
        var builder = WebApplication.CreateBuilder(args);
        builder.Services.AddControllers();
        builder.Services.AddEndpointsApiExplorer();
        builder.Services.AddSwaggerGen();

        var app = builder.Build();

        if (app.Environment.IsDevelopment())
        {
            app.UseSwagger();
            app.UseSwaggerUI();
        }

        app.UseAuthorization();
        app.MapControllers();
        app.Run();
    }
}

如果需要,我可以提供更多详细信息,但我不太确定除此之外还需要哪些信息,所以请随时向我提供线索!我还在网络/堆栈交换搜索中四处寻找

[::]
字符串,但无济于事。

** 更新 ** 根据 Ibram Reda 的请求,launchSettings.json 文件位于此处:

{
  "$schema": "https://json.schemastore.org/launchsettings.json",
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:65486",
      "sslPort": 0
    }
  },
  "profiles": {
    "FeatureFlagsAPI": {
      "commandName": "Project",
      "dotnetRunMessages": true,
      "launchBrowser": true,
      "launchUrl": "swagger",
      "applicationUrl": "http://localhost:5678",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "swagger",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

c# windows asp.net-core-webapi .net-8.0
1个回答
0
投票

令人不太满意的是,这个问题似乎已经自行解决了。我能够使用 localhost 并且 IP 按预期显示。我只能想象 IT 管理人员添加/更改了应用程序或设置,但我不能 100% 确定。我所有其他研究都证实了 BenderBoy 在帖子评论中所说的话。

© www.soinside.com 2019 - 2024. All rights reserved.