红est无法启动

时间:2019-02-13 13:19:27

标签: c# kestrel-http-server

在指定要与.UseKestrel()绑定的端口时,出现以下错误。.但是,如果我删除了kestrel选项,并且从浏览器中检查API,则一切正常。

我尝试绑定到我的应用程序默认未设置端口的端口,并且尝试检查netstat以积极避免使用任何端口。除了完全删除选项之外,什么都没有。这不会在我的Mac或其他Windows 10计算机上复制。该设备是Windows10。

.UseKestrel(options =>
{
    options.Listen(IPAddress.Loopback, 50470);
    options.Listen(IPAddress.Any, 80);
})

: Microsoft.AspNetCore.Server.Kestrel[0]
Overriding address(es) 'http://localhost:50470/'. Binding to endpoints defined 
in UseKestrel() instead.
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
at 
System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException
(SocketError error, String callerName)
at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress 
socketAddress)
at System.Net.Sockets.Socket.Bind(EndPoint localEP)
at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransport.
BindAsync() at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServer. 
<>c__DisplayClass21_01.<<StartAsync>g__OnBind|0>d.MoveNext() ` 

6 个答案:

答案 0 :(得分:12)

也可以在此处查看Darkthread的答案:https://superuser.com/questions/1486417/unable-to-start-kestrel-getting-an-attempt-was-made-to-access-a-socket-in-a-way

我们发现已经使用了很长时间的端口不再可用,因为它已被Windows保留!您可能希望使用以下命令检查保留的端口: xmlns

答案 1 :(得分:2)

Windows Update之后,Windows保留了某些端口,并且应用程序无法绑定到这些端口。。请检查此命令以禁止Os上的端口

netsh接口ipv4显示排除的端口范围协议= tcp

答案 2 :(得分:1)

当您直接通过ASP.NET Core运行Kestrel应用程序而没有additional reverse proxyIIS之类的nginx时,您将需要正确配置托管URL 。

问题是因为您没有在Port sharing limitation网络服务器中关注kesterl

使用kestrel网络服务器时,应将unique port设置为app。(如果使用port 80,请确保没有应用程序使用此端口)。 并且您的应用程序也具有足够的权限。

更多信息:

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-2.2

我希望是有用的。

答案 3 :(得分:0)

问题出在端口80的附加绑定上,对此进行了更新更正了该问题。

答案 4 :(得分:0)

就我而言,从应用的 launchSettings.json 中删除无效的本地 IP 和端口地址组合做到了。

答案 5 :(得分:0)

“.UseKestrel(options => { options.Listen(...) })”中端口 80 的附加绑定导致了我的问题。