代码之家  ›  专栏  ›  技术社区  ›  alelom

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

  •  3
  • alelom  · 技术社区  · 6 年前

    IIS中的ASP核心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();
    

    要添加更多上下文,请执行以下操作: -我能够使用NLog正确登录到文件 -我在 Output VS中的窗口 -我知道如何在浏览器中发送和查看日志消息。

    我只想在调试模式下将应用程序启动到visual studio,并打开控制台窗口。这可能吗?

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

    通常,当您创建新的ASP Core 2时 控制台应用程序 ,只需执行以下操作即可看到控制台 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.'
    

    任何提示都将不胜感激。


    一些参考/测试尝试无效:

    2 回复  |  直到 5 年前
        1
  •  5
  •   Shawn Wildermuth    6 年前

    如果在Visual Studio 2017中调试时需要它,只需打开输出窗口并查看下拉列表,就可以看到ASP。NET核心命令行作为选项。

    控制台。不需要读取,因为它完全是异步的(可能会阻止应用程序运行)。

    如果您不在VS2017上,那么只需从命令行运行它(dotnet运行)。

        2
  •  0
  •   Ergin Çelik    5 年前

    我们使用该代码查看控制台上的详细信息。VS 2017,Wep Api

    public Startup(IConfiguration configuration, IHostingEnvironment hostingEnvironment)
    {
          Configuration = configuration;
          HostingEnvironment = hostingEnvironment;
    
          if (HostingEnvironment.IsDevelopment())
          {
                Log.Logger = new LoggerConfiguration()
                    .MinimumLevel.Debug()
                    .MinimumLevel.Override("Microsoft", LogEventLevel.Information)
                    .MinimumLevel.Override("System", LogEventLevel.Warning)
                    .Enrich.FromLogContext()
                    .WriteTo.Console()
                    .CreateLogger();
         }
    }
    

    console screenshot