NET核心Web应用程序-System.NET.Sockets.SocketException



所以我试图在我的计算机上设置一个自签名的web应用程序,但每当应用程序运行时都会遇到此异常。

异常:

crit: Microsoft.AspNetCore.Server.Kestrel[0]
Unable to start Kestrel.
System.Net.Sockets.SocketException (10013): An attempt was made to access a socket in a way forbidden by its access permissions.

本地主机文件被设置为解析";cserv.dk";在我的ip地址上,证书被添加到trusted。

程序文件

public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureServices((context,services) => {
HostConfig.CertPath = context.Configuration["CertPath"]; // From development.json
HostConfig.CertPassword = context.Configuration["CertPassword"]; // From secrets.json
}

)
.ConfigureWebHostDefaults(webBuilder =>
{
var host = Dns.GetHostEntry("cserv.dk");
webBuilder.ConfigureKestrel(opt =>
{
opt.Listen(host.AddressList[0], 80);
opt.Listen(host.AddressList[0], 443, listOpt => {
listOpt.UseHttps(HostConfig.CertPath, HostConfig.CertPassword);
}); // Listen on HTTPS
});
webBuilder.UseStartup<Startup>();
});
}

我确实犯了一个错误。第一次运行该项目时,我使用IIS Express(未安装正常的IIS(。据我所知,这在某种程度上把事情搞砸了。即使在所有东西都关闭和/或计算机重新启动的情况下;cserv.dk";在浏览器中显示一个空白页面,而不是错误。如果调用:80,它甚至会重定向到https。

我认为这是因为443端口在某种程度上被使用,但我认为它真的不应该被使用;netstat-ao";似乎没有透露任何信息。

我已尝试使用删除IIS Express中网站的任何剩余部分。。。

appcmd.exe list site /xml | appcmd delete site /in

运气不好,我需要帮助:D

干杯

最终找到了原因VMWare。删除所有进程解决了这个问题,我认为这与它的NAT功能有关。

我遇到了同样的问题,可以通过重新启动nat:来解决

net stop winnat

net start winnat

相关内容

最新更新