Я новичок в Windows IoT и пытаюсь запустить свое первое приложение dot net core на Raspberry Pi. Это не потому, что я считаю Raspbian Pi идеальным местом для размещения веб-сайтов, а моя цель - реализовать систему измерения и управления на Pi и сделать все это доступным через REST API. Перво-наперво, я хотел создать стандартное приложение dot net core из шаблона VS2017 и запустить его на Pi.
В шаблоне было создано приложение, которое было доступно на http://localhost:62100.
Как я знал из предыдущих экспериментов, приложение прослушивало только localhost, поэтому я изменил класс Program следующим образом:
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args)
{
var configuration = new ConfigurationBuilder()
.AddCommandLine(args)
.Build();
var hostUrl = configuration["hosturl"];
if (string.IsNullOrEmpty(hostUrl))
hostUrl = "http://0.0.0.0:62100";
return new WebHostBuilder()
.UseKestrel()
.UseUrls(hostUrl)
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.UseConfiguration(configuration)
.Build();
}
}
И теперь сервером можно было пользоваться с моего телефона, используя IP-адрес ПК.
Чтобы подготовить проект для Pi, я открыл PowerShell в папке, где находится файл проекта (в моем случае C: \ Users \\ Documents \ Visual Studio 2017 \ Projects \ AspNetCore \ AspNetCore) и выполнил команду:
dotnet publish -r win10arm
Затем я скопировал все файлы, размещенные в bin \ Debug \ netcoreapp2.0 \ win10-arm \ publish, на Pi и запустил приложение из PowerShell, подключенного к Pi:
.\AspNetCore.exe
Pi (после некоторых глубоких размышлений) отвечает, как при запуске на ПК:
[192.168.200.106]: PS C:\CoreApplications\AspNetCore> .\AspNetCore.exe
Hosting environment: Production
Content root path: C:\CoreApplications\AspNetCore
Now listening on: http://0.0.0.0:62100
Application started. Press Ctrl+C to shut down.
Но попытка доступа к серверу из моего браузера (http://192.168.200.106:62100) завершается с ошибкой ERR_CONNECTION_TIMED_OUT .
Что мне не хватает?