У меня есть простое. NET Ядро 3.1 собственного приложения Kestrel. После публикации на моем сервере он работает правильно на http://localhost: 5000 .
Я хочу получить доступ к этому приложению через удаленный браузер, поэтому я изменил Program.cs
, как показано ниже:
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
{
Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.ConfigureKestrel(so =>
{
so.Listen(IPAddress.Any, 5000); //==> This is OK
});
webBuilder.UseStartup<Startup>();
});
}
}
Теперь приложение доступно из любого удаленного браузера по адресу http://IP:port
. Однако вместо использования IP: Port я хочу привязать URL-адрес домена (например, www.XXXX.com
) к своему приложению.
Я использую Cloudflare в качестве DNS-сервера и прокси-сервера. Имейте в виду, что Cloudflare не поддерживает переадресацию портов. Кроме того, приложение Portzilla в Cloudflare мне было бесполезно.
Пока что я сделал, я добавил новый IP-адрес (скажем 112.250.22.33
) на сервер и попытался настроить приложение. прослушивать порт 80 указанного IP-адреса c:
webBuilder.ConfigureKestrel(so =>
{
so.Listen(IPAddress.Parse("112.250.22.33"), 80); //==> NOT OK
});
Однако при такой конфигурации приложение не запускается вообще, даже если я запускаю его в Запуск от имени администратора режим. Вместо этого возвращается с этой ошибкой:
Microsoft.AspNetCore.Server.Kestrel [0] Невозможно запустить Kestrel. System. Net .Sockets.SocketException (10013): Предпринята попытка получить доступ к сокету способом, запрещенным его правами доступа.
Любая помощь будет принята с благодарностью.