Удаленный доступ к локальным основным приложениям ASP.NET с IP-адреса? - PullRequest
0 голосов
/ 26 мая 2019

Я хочу (вызвать) отладку основного приложения asp.net с удаленного компьютера или мобильного устройства?Помогите мне, пожалуйста.В стандартном .net добавьте этот код в .vs\config\applicationhost.config при изменении значения <binding protocol="http" bindingInformation="*:21918:localhost" /> на <binding protocol="http" bindingInformation="*:21918:*" />.

           <site name="project" id="2">
                <application path="/" applicationPool="Clr4IntegratedAppPool">
                    <virtualDirectory path="/" physicalPath="F:\users\Api" />
                </application>
                <bindings>
                    <binding protocol="http" bindingInformation="*:21918:*" /> 
                </bindings>
            </site>

Ответы [ 3 ]

1 голос
/ 26 мая 2019

Вы можете следовать инструкциям ниже, как решить вашу проблему и пройти через все эти проблемы.1- Убедитесь, что у вас нет открытого экземпляра Visual Studio.

2- Откройте файл %userprofile%\Documenti\IISExpress\config\applicationhost.config, являющийся %userprofile% вашей пользовательской папкой, например C:\Users\YourUsername\.

3-Найдите запись, соответствующую веб-приложению, которое мы хотим изменить, и измените его обязательный элемент следующим образом: <binding protocol="http" bindingInformation="*:<port>:*" /> Все, что нам нужно сделать, это заменить пару localhost на *, оставив автоматически назначенный <port> какэто.Если вам действительно нужно изменить этот порт, замените его другим действительным, свободным портом TCP (например, 8080) и выполните следующий шаг.В противном случае пропустите его и перейдите к шагу рядом с ним.

4 - Если вы изменили автоматически назначенный порт TCP, вам также необходимо открыть файлы проекта (.csproj) и решения (.sln) веб-приложения и убедиться, чтонет ссылок на предыдущий порт: они могут быть там или нет в зависимости от выбранного вами типа проекта (веб-приложение, приложение MVC, веб-сайт и т. д.).Если это так, замените старый порт новым.

5-Откройте командную строку (с правами администратора) и введите следующее: netsh http add urlacl url=http://*:<port>/ user=everyone Поместите TCP-порт приложения вместо.Если вы получаете сообщение об ошибке (1789), это означает, что группа пользователей «Все» отсутствует в вашей системе, что может происходить в некоторых локализациях Windows.Если это так, просто замените всех соответствующими именами групп пользователей.Вместо этого вы также можете попробовать запустить Visual Studio с правами администратора.

6-Откройте панель расширенной настройки брандмауэра Windows и добавьте правило для входящего трафика, чтобы разрешить входящий трафик для приложения IISExpress.exe ИЛИ дляTCP-порт, используемый вашим веб-приложением.Если вы отключили его для другого продукта, сделайте то же самое с ним.Если вы не используете - вы уверены?- вы можете либо восполнить пробел, а затем выполнить описанное выше или просто пропустить этот шаг.

После того, как вы это сделаете, вы можете запустить Visual Studio и запустить приложение в режиме отладки или выпуска: вы должныполучить доступ к нему с любого внешнего устройства, подключенного к сети, используя следующий веб-адрес: http://<lan-ip-address>:<port>/

1 голос
/ 26 мая 2019

Существует решение для туннелирования в этой ситуации, вы можете использовать приложение ngrok для туннелирования локального окружения и предоставления удаленного URL-адреса за пределы сети для целей отладки или тестирования.

После загрузки ngrok просто запустите эту команду:

./ngrok http 25114 -host-header="localhost:25114"

Не забудьте заменить локальный порт приложения.

0 голосов
/ 26 мая 2019

Вы можете использовать этот метод:

Открыть Program.cs в вашем проекте:

        var configuration = new ConfigurationBuilder()
            .AddCommandLine(args)
            .Build();


        var hostUrl = configuration["hosturl"]; // add this line
        if (string.IsNullOrEmpty(hostUrl)) // add this line
            hostUrl = "http://0.0.0.0:5001"; // add this line


        var host = new WebHostBuilder()
            .UseKestrel()
            .UseUrls(hostUrl)   // // add this line
            .UseContentRoot(Directory.GetCurrentDirectory())
            .UseIISIntegration()
            .UseStartup<Startup>()
            .UseConfiguration(configuration)
            .Build();

        host.Run();

Подробнее

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...