显示用于登录 ASP Core 2 的控制台

ale*_*a87 3 asp.net console console-application console.log asp.net-core-2.0

IIS 中的 ASP Core 2,Console Application在项目属性中。Visual Studio 2017 社区。

我正在尝试登录控制台,但控制台根本不显示。

目的是在连接浏览器时简单地显示控制台以进行日志记录。

我已将应用程序配置为BuildWebHost

public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
         .ConfigureAppConfiguration((builderContext, config) =>
                  {
                      IHostingEnvironment env = builderContext.HostingEnvironment;
                   })
         .ConfigureLogging((hostingContext, logging) =>
            {
                logging.AddConsole();
                logging.AddDebug();
            })
         .UseNLog() 
         .UseStartup<Startup>()
         .Build();
Run Code Online (Sandbox Code Playgroud)

要添加更多上下文: - 我能够使用 NLog 正确记录到文件 - 我在OutputVS 的窗口中看到日志消息 - 我知道如何向浏览器发送和查看日志消息。

我只想在调试模式下将应用程序触发到 Visual Studio 并打开控制台窗口。那可能吗?

从命令提示符处使用 dotnet-run 运行应用程序不是一个解决方案,因为我没有编辑并继续功能。

通常,当您创建一个新的 ASP Core 2 时Console Application,只需Console.WriteLine("Hello world");Program方法中执行即可看到控制台。然而,在我的应用程序中,这不会显示控制台。

我知道原因可能在于控制台输出被重定向或不存在;事实上,如果我这样做,Console.ReadKey();我会得到以下结果:

 'Cannot read keys when either application does not have a console or when console input has been redirected. Try Console.Read.'
Run Code Online (Sandbox Code Playgroud)

任何提示表示赞赏。


一些参考/测试尝试无济于事:

Sha*_*uth 6

如果您希望在 Visual Studio 2017 中进行调试,只需打开“输出”窗口并查看下拉列表,您应该会看到 ASP.NET Core 命令行选项。

不需要 Console.Read,因为它都是异步的(它可能会阻止应用程序运行)。

如果您没有使用 VS2017,则只需从命令行运行它(dotnet run)。

  • @alexlomba87:你错过了肖恩的观点。ASP.NET Core 过去在 Visual Studio 中提供了一个选项来加载自托管应用程序(而不是使用 IIS Express),这会导致打开一个控制台窗口。然而,这已被删除。无论如何,您仍然可以在 Visual Studio 的“输出”窗格中看到控制台输出。那里有一个名为“显示输出”的下拉菜单,其中一个选项是“ASP.NET Core Web 服务器”。选择此选项,您将看到所有控制台输出。现在 Visual Studio 中没有其他方法。 (5认同)