NET Core 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.

设置本地主机文件以解析我的IP地址上的“ cserv.dk”,并将证书添加到受信任的文件中。

程序文件

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功能有关。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...