Задать вопрос

Как запустить сервер на C# на VPS?

Создал сервер и клиента на своем компе - все прекрасно работает. Решил залить сервер своего приложения на виртуальный сервер на Windows Server 2016, но на нем мой сервер не работает. А дело в том что порт приложения (18888, пробовал и другие) не открывается, что пробовал:
1. Отключать брандмауэр полностью - не помогло
2. Включил брандмауэр обратно и разрешил свой порт во входящих и исходящих соединениях - не помогло
Антивирусника нет на сервере, то есть он не может блокировать работу приложения.
netstat -a выдает следующую инфу:
5f1b026911e21340638278.png
это при условии что: IPHostEntry iPHost = Dns.GetHostEntry("localhost");
пробовал вместо localhost, вписывать ip-адрес сервера - не помогло
Клиент моего приложения не может подключиться с другого компа к серверу. Сайт 2ip.ru, так же пишет что порт 18888 закрыт? Как решить проблему?
===
5f1b1d25cbf7d049581158.png
Текущий код сервера:
static void Main(string[] args)
        {
            TcpListener server = null;
            try
            {
                int MaxThreadsCount = Environment.ProcessorCount * 4;
                ThreadPool.SetMaxThreads(MaxThreadsCount, MaxThreadsCount);
                ThreadPool.SetMinThreads(2, 2);
                Int32 port = 18888;
                IPAddress ipAddr = Dns.Resolve(IPAddress.Any.ToString()).AddressList[0];
                int counter = 0;
                server = new TcpListener(ipAddr, port);

                Console.WriteLine("Конфигурация многопоточного сервера:");
                Console.WriteLine(" Порт: " + port.ToString());
                Console.WriteLine(" Потоки: " + MaxThreadsCount.ToString());
                Console.WriteLine("\nСервер запущен\n");
                server.Start();
                while (true)
                {

                    Console.Write("\nОжидаем соединения");
                    ThreadPool.QueueUserWorkItem(ClientProcessing, server.AcceptTcpClient());
                    counter++;
                    Console.Write("\nСоединение №" + counter.ToString() + "!");
                }
            }catch (SocketException e)
            {
                Console.WriteLine("SocketException: {0}", e);
            }
            finally
            {
                server.Stop();
            }

            Console.WriteLine("\nНажмите Enter...");
            Console.Read();
        }

UPD. Я так понимаю нужно каким то образом поменять сетевой интерфейс с ipv6, на какой то из тех которые выделены в красные рамки, но как это сделать не понимаю. Манипуляции описанные выше не помогли соответственно. Кто сталкивался с подобной задачей, помогите плз
  • Вопрос задан
  • 573 просмотра
Подписаться 2 Простой 6 комментариев
Пригласить эксперта
Ответы на вопрос 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
В доках все прописано , по идее вам нужно прописать порт привязки в application.json

После появления исходников все стало понятней.
// вот этого достаточно.
server = new TcpListener(IPAddress.Any, port);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы