首页 > 解决方案 > 如何从 Main() 启动应用程序的多个实例?

问题描述

我正在测试一个负载均衡器,为此我需要运行多个 HTTP 服务器。现在我可以通过创建多个项目来运行多个 HTTP 服务器。但是我想知道是否可以仅从一个解决方案启动应用程序的多个实例。

例如,我有以下方法:

    private static void RunLocalHttpServer(int Port)
    {
        try
        {
            HttpListener HttpListener = new HttpListener();
            HttpListener.Prefixes.Add("http://localhost:" + Port.ToString() + "/");
            HttpListener.Start();
        }
        catch (WebException ex)
        {
            Console.WriteLine(ex);
        }
    }

此方法在我的控制台应用程序的 main 方法中调用,如下所示:

    static void Main(string[] args) {
        int[] ServerPorts = {8081, 8082, 8083};
        for (int i = 0; i < ServerPorts.Length; i++) {
            RunLocalHttpServer(ServerPorts[i]);
        } 
    }

当我运行这个应用程序时,它会打开一个控制台,其中有一个正在监听端口 8081 的服务器。但是我想启动,在这种情况下,我想启动三个单独的控制台,在每个控制台中,一个服务器将运行(一个在端口 8081,一个在 8082和一个在 8083 上)。

是否可以从一种解决方案中做到这一点?如果没有,我可以用什么来替代实现我的目标?提前致谢。

标签: c#console-application

解决方案


如果没有,我可以用什么来替代实现我的目标?

您也可以使用netcat来侦听某些端口。


推荐阅读