Lorsque je spécifie un port auquel se connecter avec .UseKestrel () , j'obtiens les erreurs listées ci-dessous .. mais si je supprime les options de Kestrel, tout fonctionne normalement si je vérifie l'API depuis mon navigateur.
J'ai essayé de me lier au port par défaut de mon application sans aucun port choisi et j'ai essayé de vérifier netstat pour éviter activement tout port en cours d'utilisation. Rien ne fonctionne à part la suppression complète des options. Cela n'est pas répliqué sur mon Mac ou sur une autre machine Windows 10. Cet appareil est Windows 10.
.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() `
4 Réponses :
Le problème était lié à la liaison supplémentaire du port 80, la mise à jour a corrigé le problème.
êtes-vous en mesure d'expliquer ce que vous avez fait pour résoudre un peu mieux ce problème? Où avez-vous mis à jour la liaison? sur l'IIS?
Lorsque vous exécutez une application ASP.NET Core directement via Kestrel , sans proxy inverse supplémentaire comme IIS code > ou nginx , vous devrez configurer correctement l'URL d'hébergement.
le problème venait du fait que vous n’aviez pas respecté la limitation de partage de port sur le serveur Web kesterl .
lorsque vous utilisez le serveur Web kestrel , vous devez définir le port unique sur app. (si vous utilisez le port 80 , assurez-vous aucune application n'utilise ce port).
et votre application dispose également d'autorisations suffisantes.
plus d'infos:
J'espère que c'est utile.
Vérifiez également la réponse de Darkthread ici: https://superuser.com/questions/1486417/unable-to-start-kestrel-getting-an-attempt-was-made-to-access-a-socket-in-a -way
Nous avons découvert qu'un port que nous utilisions depuis longtemps n'était plus accessible car il avait été réservé par Windows! Vous souhaiterez peut-être vérifier les ports réservés à l'aide de cette commande:
netsh interface ipv4 show excluportrange protocol = tcp
J'ai eu ce même problème et c'était la seule chose qui m'a aidé à le traquer. Pourquoi Windows définit-il maintenant de si grandes plages de réservations de port?
Oui, c'était la seule chose qui a aidé. Microsoft devrait documenter cela.
Après Windows Update, certains ports sont réservés par Windows et les applications ne peuvent pas se lier à ces ports. veuillez vérifier cette commande pour le port interdit sur OS
interface netsh ipv4 show excluportrange protocol = tcp
Est-ce le même utilisateur sur les deux machines Windows? "... interdit par ses autorisations d'accès" pourrait pointer vers un paramètre de stratégie de groupe.
Ce n'est pas le cas, ce sont des ordinateurs entièrement différents et une autre personne exécutant le code.