ASP.NET Core 7 应用程序没有从开发环境中移出 Configure 方法

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

我有一个使用传统

Program
Startup
方法运行的 ASP.NET Core 7 Web API。它使用默认设置作为控制台应用程序运行。在 Visual Studio 中,我可以运行或调试,控制台窗口打开,服务器启动,我可以从端口 5000/5001 发送请求和接收回复。

但是,当我在 Visual Studio 之外运行 EXE 时,我得到一个挂起的命令提示符。我无法向端口 5000/5001 发送请求 - 我得到

connection refused
,但如果我尝试运行它两次,它说第二次尝试时这些端口不可用。

我在

ConfigureServices
Configure
方法中添加了一些日志记录,并且这些输出到两个实例中的控制台。这些方法都在完成时进行记录,但是除非您在 Visual Studio 中运行应用程序,否则它永远不会进入“侦听端口 5000”。如果我运行它并将 VS 附加到进程,它似乎不会卡在任何地方。

我在 EventViewer 或其他任何地方都没有错误。

在 Visual Studio 中输出到控制台:

info: ApiAppTesting.Startup[0]
  App Configure Completed
info: Microsoft.Hosting.Lifetime[14]
  Now listening on: https://localhost:5001
info: Microsoft.Hosting.Lifetime[14]
  Now listening on: http://localhost:5000
info: Microsoft.Hosting.Lifetime[0]
  Application started. Press Ctrl+C to shut down.

在命令提示符下运行相同的 EXE 时的输出(无论是否以管理员身份,或在 Powershell 中):

info: ApiAppTesting.Startup[0]
  App Configure Completed

应用挂在这里。

我不确定如何进一步调试,或者内置代码接下来调用什么方法以便我可以进一步调试。我使用相同的设置创建了一个空白的 Web API 应用程序,但这并没有发生。

是否需要更改某些内容才能使其在 IDE 之外运行,或者是否可以打开额外的日志记录以查看它冻结的确切位置?

编辑:我按照建议运行了

netstat -a
,可以看到端口 5000 (http) 正在监听。如果我通过 Telnet 向该端口发送请求,我会在控制台中记录一条消息:

无法确定重定向的 https 端口

所以我认为这与

https
有关(使用自签名开发证书,但在 Visual Studio 中工作....)。仍然没有收到任何错误消息。

编辑

Program.cs
中的代码:

    public static void Main(string[] args)
    {
        Console.WriteLine("Press Enter to Start");
        Console.ReadLine(); //Added to allow debugger to attach before anything is run
        CreateHostBuilder(args).Build().Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
            });
}
c# windows asp.net-core console-application
© www.soinside.com 2019 - 2024. All rights reserved.