web-dev-qa-db-fra.com

Impossible de déterminer le port https pour la redirection dans Docker

J'essaie de déployer un service webapi core asp.net qui est exposé à partir du port 80 en utilisant:

docker run --rm -p 80:80 --name radicadorrest -it radicadorrest

erreur:

avertir: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager [35] Aucun chiffreur XML configuré. La clé {e60978fd-16bc-4ff2-8525-39b5d0c36be5} peut être conservée dans le stockage sous forme non chiffrée. Environnement d'hébergement: Chemin racine du contenu de production:/app Écoute en cours: http: // [::]: 8 Application démarrée. Appuyez sur Ctrl + C pour arrêter.

avertir: Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware [3] Impossible de déterminer le port https pour la redirection. L'application est en cours de fermeture ...

J'ai essayé d'utiliser différents ports mais j'obtiens la même erreur.

Version Docker:

Client: version: 17.09.1-ce
Version API: 1.32
Version Go: go1.8.3
Git commit: 19e2cf6
Construit: jeu. 7 déc. 22:25:13 2017
OS/Arch: linux/AMD64

Serveur: version: 17.09.1-ce
Version de l'API: 1,32 (version minimale 1,12)
Version Go: go1.8.3
Git commit: 19e2cf6
Construit: jeu. 7 déc 22:26:35 2017 OS/Arch: linux/AMD64 Expérimental: faux

J'ai également essayé sur Windows avec le même résultat.

Les deux avertissements sont totalement indépendants.

Pour l'avertissement DataProtection, je recommande de suivre les instructions présentées ici sur les documents officiels ASP.Net Core . Si vous souhaitez approfondir le code source et la décision pertinents, vous pouvez le voir ASP.Net GitHub PR pertinent .

Pour l'avertissement de redirection https, je recommande simplement de supprimer la stratégie de redirection https du fichier startup.cs Qui est généralement défini via app.UseHttpsRedirection(); sauf si vous utilisez réellement cette stratégie pour votre conteneur et dans ce cas vous devez réellement configurer les certificats et exposer le port HTTPS sur votre conteneur.

1
David Tesar

En effet, lorsque vous avez créé le projet ASP.NET Core, vous avez sélectionné l'option "Configurer pour HTTPS". Cela ajoute le middleware HttpsRedirectionMiddleware qui applique les connexions SSL pour votre application Web. Le fichier Docker que vous avez créé spécifie uniquement le port HTTP. Par conséquent, le HttpsRedirectionMiddleware échoue et ferme l'application. Fondamentalement, si vous n'aviez pas sélectionné l'option "Configurer pour HTTPS" lors de la création du projet, tout irait bien ou vous assurer que le SSL est correctement configuré (ports et certificats).

0
Shinva