如何在一个 Visual Studio 解决方案中的 2 个内部 API 之间发出 API 请求?

How can I make API requests between 2 internal APIs in one Visual Studio solution?

我创建了一个 API .NET CORE 项目,它作为我的启动项目运行良好,并且已将 5001 分配为端口,例如其中一个调用是:

https://localhost:5001/api/Values/TESTME

我在启动时添加了站点 cors 策略,如下所示:

  services.AddCors(options =>
        {
            options.AddPolicy("SiteCors", builder =>
            {
                builder.AllowAnyHeader();
                builder.AllowAnyMethod();
                builder.AllowAnyOrigin();
            });
        });

现在我添加了另一个项目(在不同的本地主机端口上运行)并将其设置为启动项目 - 它尝试执行 WebRequest:

    string url = "https://localhost:5001/api/Values/TESTME";
    try
    {
        WebRequest request = WebRequest.Create(url);
        WebResponse response = request.GetResponse();
        response.Close();
    }
    catch (Exception ex)
    {
        
    }

被拒绝因为 No connection could be made because the target machine actively refused it.

我认为添加防火墙规则可能是正确的,但 1) 我该如何为此添加防火墙规则? 2)这会起作用吗?我需要两个项目在 VS 中同时为“运行”吗?

确保你 运行 都在 单独的实例 单独的端口 & 它应该没问题(如果你没有'没有明确阻止防火墙中的任何内容)。

您还可以 运行 一个 API 在 IIS 服务器或自托管中,另一个 运行 在 Visual Studio.