为什么我的Console应用程序没有显示Console

时间:2016-12-20 17:38:21

标签: c# visual-studio console-application

非常奇怪的问题......我的解决方案中有2个控制台应用程序,控制台应用程序1,当我运行它时显示控制台并将其设置为启动项目...控制台应用程序2,运行.. 。执行...但不显示控制台。

以下是代码:

public class Program
    {
        static void Main()
        {
            string baseAddress = "http://localhost:8080/";

            using (WebApp.Start<StartUp>(url: baseAddress))
            {
                Console.Write("Service Listening at : " + baseAddress);
                System.Threading.Thread.Sleep(-1);
            }
        }
    }

这是StartUp类

 public class StartUp
    {
        public void Configuration(IAppBuilder appBuilder)
        {
            HttpConfiguration config = new HttpConfiguration();
            config.EnableCors();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional });
            config.Formatters.Clear();
            config.Formatters.Add(new JsonMediaTypeFormatter());
            config.Formatters.JsonFormatter.SerializerSettings =
            new JsonSerializerSettings
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            };
            appBuilder.UseWebApi(config);
        }
    }

3 个答案:

答案 0 :(得分:2)

尝试关闭Visual Studio并再次将其打开

也许这也会对其他人有帮助,因为同样的事情发生在我身上。

这是在我在IIS Express上调试ASP.Net Core项目之后发生的。我关闭了ASP.Net Core解决方案,然后在不关闭Visual Studio的情况下打开了控制台应用程序解决方案,但是控制台不会显示。因此,我关闭了Visual Studio,然后再次打开解决方案,并显示了控制台。

我正在使用Visual Studio Professional 2017版本15.9.20

答案 1 :(得分:1)

除非将子线程标记为前台线程,否则当WebApp.Start方法返回时,控制台应用程序将终止。您的程序可能运行得如此之快,以至于您永远不会看到控制台窗口的显示。

Main不是阻止方法,也不是Console.ReadLine()方法中的任何后续调用。

只需在“服务收听”消息后添加Thread.Sleep(-1)来电。不需要{{1}},因为您的代码没有在合作多任务环境中运行。

答案 2 :(得分:0)

启动设置可能已设置为IIS Express。转到项目属性>调试,然后将启动设置更改为项目。还要确保将“标准工具栏”上的“调试目标”也设置为项目。

Debug Target