dotnet 核心 3.1 IIS 错误 "An attempt was made to access a socket in a way forbidden by its access permissions (10013)"

dotnet core 3.1 IIS Error "An attempt was made to access a socket in a way forbidden by its access permissions (10013)"

我有 dotnet core 3.1 项目。我在iis上启动了几台机器。但是今天我无法在 iis 上启动该应用程序。我可以使用“dotnet ”命令启动,一切正常。但是当我在 IIS 上启动时,它给出了这个错误。

"暴击:Microsoft.AspNetCore.Server.Kestrel[0] 无法启动红隼。 System.Net.Sockets.SocketException (10013): 试图以访问权限禁止的方式访问套接字。 在 System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError 错误,String callerName)

有什么建议吗?

PS:我使用命令 netstat -o 检查了正在使用的端口。任何应用程序都没有使用

最后我自己找到了解决办法。我从 program.cs 中删除了 UseKestrel() 行,一切正常。

        var config = new ConfigurationBuilder().AddCommandLine(args).Build();

       return  Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
                webBuilder.UseKestrel(); **//remove this line.**
                webBuilder.UseUrls();
                webBuilder.UseIISIntegration();
                
            }).ConfigureServices((context, services) =>
            {
                services.AddHostedService<Worker>();
                services.AddHostedService<MonitorWorker>();
                services.AddHostedService<TransferWorker>();
            });

    }

netsh interface ipv4 show excludedportrange protocol=tcp

查看列出的端口,看看它是否与您的端口重叠。

如果是这样,重新启动您的 PC 或更改端口已为我解决此问题。

我正在使用端口 56240,Windows 更新有时会占用该范围。