我有一个简单的.NET Core3.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不支持端口转发。而且,Cloudflare中的Portzilla应用程序对我没有任何用处。
到目前为止,我已经向服务器添加了一个新的IP (比方说112.250.22.33),并尝试将应用程序配置为侦听这个特定IP地址的端口80:
webBuilder.ConfigureKestrel(so =>
{
so.Listen(IPAddress.Parse("112.250.22.33"), 80); //==> NOT OK
});但是,使用此配置,应用程序根本不运行--即使我以管理员模式运行它。相反,它将返回以下错误:
Microsoft.AspNetCore.Server.Kestrel无法启动Kestrel。System.Net.Sockets.SocketException (10013):尝试以其访问权限禁止的方式访问套接字。
任何帮助都将不胜感激。
发布于 2021-06-09 11:58:44
我不确定,但看起来IIS持有的是80端口。我禁用了DefaultWebSite,可以将域名绑定到本地Kestrel运行。
https://stackoverflow.com/questions/61194206
复制相似问题