kreo_OL
@kreo_OL
Медузко -_-

Внешнее подключение к локальному iis express?

Здравствуйте!

Пока оформлял этот вопрос, я пробовал еще различные способы решения проблемы, и в итоге мне удалось ее решить.
Но вопрос я оставлю, дав на него ответ, уверен, я не один кто с трудом смог найти ответ и возможно это поможет кому то еще.

Написал небольшой net core 3.1 web api сервер.
Сделал конфигурация для доступа по 6666 и 6669 порту.
Конфигурация)

{
  "$schema": "http://json.schemastore.org/launchsettings.json",
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:6666",
      "sslPort": 6669
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": false,
      "launchUrl": "api",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "Unnamed_dataServer": {
      "commandName": "Project",
      "launchBrowser": false,
      "launchUrl": "api",
      "applicationUrl": "https://localhost:6669;http://localhost:6666",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

Если я обращаюсь с того же пк на котором и сервер через localhost:6666, то все норм.
Если же я пытаюсь получить доступ из локальной сети по ip компьютера в локальной сети 192.168.88.6:6666, то получаю ответ "Error: connect ECONNREFUSED 192.168.88.6:6666" как и с самого компьютера, так и из других устройств сети.
Аналогичный ответ я получаю если пытаюсь получить доступ через внешний статический ip.

Провел листинг портов 6666 порт открыт. На роутере настроен проброс портов и тоже все окей.

Гугление по аналогичным проблемам дало два пункта:
1. Прописать в настройках проекта вместо localhost:6666, внешний ip, должно тогда работать. (Как открыть доступ к IIS?)
2. Доступ запрещен на самом сервере - и делай че хочешь.

Результаты по этим пунктам:
1. Если прописать ip пк в локалке, то сервер запускается, но, доступ к нему теперь вообще ни как не получить, ни с локального компа, ни с устройств в сети, ни из вне. Если прописать внешний,
то проект не запускается.
5f3ed03deb2d4821669324.jpeg
Однако, с ip локальной сети можно достучаться до сервера, если его именно сбилдить и запустить отдельным приложением а не через ide.

2.
  • Попробовал сделать дефолтными все настройки и запустить, на портах выданными при создание проекта все аналогично.
  • Попросил совета у знакомого сисадмина - может всетаки накосячил с пробросами, но нет, заверил что порт открыт, доступен и до него можно достучаться.
  • Чтоб уж точно быть уверенным в портах поднял на них сервера пары игр и сайтов у которых точно знал как все сделать)
  • И другое - на самом деле пока я писал этот вопрос я пробовал еще разные пункты, и в итоге сделал.

  • Вопрос задан
  • 1474 просмотра
Пригласить эксперта
Ответы на вопрос 1
kreo_OL
@kreo_OL Автор вопроса
Медузко -_-
Решение проблемы вышло в три пункта
1. Необходимо запустить именно сбилженный сервер - от ide не работает вообще ни как кроме локалхост.
2. В моем случае необходим https. Но не знаю почему, но помогло только прописать оба порта
.UseStartup<Startup>().UseUrls("http://192.168.88.6:6666", "https://192.168.88.6:6669");

Если общаться на 6666 то приходит что необходимо пойти на 6669. А вот если прописать только один порт в UseUrls, то приходит то самое "Error: connect ECONNREFUSED 192.168.88.6:6666" (или 6669).
3. Первые два пункта помогли увидеть сервер в локальной сети. и только включение службы iss в компонентах виндовс дало доступ из вне
spoiler
5f3ef0fd41527473603034.png


Кстати если не делать пункт 2, а третий сделать, то все ровно ничего не работает ни на каком порту.)

Надеюсь сюда придут знающие, и расскажут почему все именно так.
spoiler
Если смущает путаница портов в вопросе и ответе, то это изза того что я в отчаиние применял научный тык.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы