IIS Express par défaut le port 44300 pour HTTPS lors de l'activation de SSL
Lorsque vous configurez IIS Express pour activer SSL par défaut, le port 44300. Malheureusement, lorsque j'essaie d'accéder à mon site sur https://localhost/
il ne fonctionne pas sauf si j'utilise le numéro de port 44300 - https://localhost:44300/
.
Les liens sont générés en utilisant les éléments suivants:
<%= Html.ActionLink("Index", "Index", "Home", new { @action = "https://" + Request.Hostname + Url.Action("Index", "Home") }) %>
Bien qu'un vilain solution, la @action
mot-clé peut remplacer la route générée, mais cela signifie que l'application aurait apparemment besoin d'être conscient de tous les ports non standard (par exemple, 44300).
Le problème c'est que j'aurais écrit quelque chose pour résoudre un problème qui ne pourrait se produire que dans un environnement de développement.
Donc ma question est... Comment puis-je changer le port 443 et ont IIS Express comme ça?
Config pour mon site ci-dessous:
<site name="MySite" id="2" serverAutoStart="true">
<application path="/">
<virtualDirectory path="/" physicalPath="C:\Inetpub\MySite" />
</application>
<bindings>
<binding protocol="http" bindingInformation=":80:" />
<binding protocol="https" bindingInformation=":44300:" />
</bindings>
</site>
Merci beaucoup à l'avance.
Mise à jour:
Cette question a été répondu par Divya plus sur IIS forums.
Vous devez vous connecter pour publier un commentaire.
Cette question a été répondu par Divya plus sur IIS forums.
Comme indiqué par d'autres, il y a plusieurs façons agréables de l'obtention de votre SSL cert.
ou (ma méthode préférée):
netsh http show sslcert
retourné plus de 100 entrées et 44300 était au top. donc, utiliser les commandesnetsh http show sslcert | more
ounetsh http show sslcert > output.txt
pour faciliter les choses sur vous-même.netsh http show sslcert ipport=0.0.0.0:44300
qui va filtrer vers le bas pour que spécifique.netsh http show sslcert | clip
de copier le résultat dans le presse-papiers, puis les coller dans votre éditeur de texte et de recherche, ilDepuis que j'ai passé beaucoup de temps sur ce sujet , je voudrais partager ma découverte. Je suis reposter ce segment à partir de mon autre post moins le code. Un peu de contexte et d'explication:
==========================================
Après des recherches sur aroud, j'ai été en mesure de résoudre ce problème avec IIS Express et un override de la classe de Contrôleur de
OnAuthorization
méthode (Réf. 1). J'ai également passé avec l'itinéraire recommandé par, Hanselman (Ref#2). Cependant, je n'était pas complet, satisfait de ces deux solutions pour deux raisons:OnAuthorization
ne fonctionne qu'au niveau de l'action, non pas à la classe de contrôleur de niveaumakecert
),netsh
commandes, et ce, afin d'utiliser les ports 80 et 443, j'ai besoin de lancer VS2010 en tant qu'administrateur, que je désapprouver.Donc, je suis venu avec cette solution qui est assez simpliste, avec les conditions suivantes:
Je veux être en mesure d'utiliser le
RequireHttps
attribut à la classe de Contrôleur ou de l'actionJe veux MVC pour utiliser le protocole HTTPS lors de la
RequireHttps
attribut est présent, et utiliser HTTP, si elle est absenteJe ne veux pas avoir à exécuter Visual Studio en tant qu'administrateur
Je veux être en mesure d'utiliser les ports HTTP et HTTPS sont affectés par IIS Express
Je peux réutiliser le SSL auto-signé cert de IIS Express, et je ne m'inquiète pas si je vois le SSL invalide Invite
=========================================
Vous pouvez trouver ma solution/code ici ==> ASP.NET MVC RequireHttps à la Production que
Le port 44300 est séquentiel: 00 signifie que c'est la première application que vous avez configuré comme le SSL est activé; 01 sera le second et ainsi de suite.
Puisque j'ai aussi besoin de mon site web pour fonctionner uniquement en HTTPS par l'ajout de la
[RequireHttps]
attribut global, j'ai eu quelques difficultés de débogage. Lors de son lancement, il a été automatiquement rediriger vershttps://localhost/
Pour résoudre ce problème lors du débogage d'un site web, il suffit de créer un nouveau
RequireHttpsAttribute
que de spécifier le portL'utilisation de cette classe lors du débogage seulement. Lorsqu'il est déployé à IIS7, vous devez utiliser la réécriture d'Url de redirection vers HTTPS.
<IISExpressSSLPort>44301</IISExpressSSLPort>
dans mon fichier de projet?Dan réponse est juste, mais si vous avez encore des problèmes avec la configuration de IIS Express pour servir votre site web avec http et https sur le port standard est sympa tutoriel qui vous guident étape par étape:
http://www.lansweeper.com/kb/54/How-to-configure-SSL-in-IIS-Express.html
Dans mon cas, j'ai accidentellement supprimé IIS Express certificat. Je pense que c'est générée la première fois que vous utilisez SSL dans Visual Studio (F4 sur des projets sélectionnés pour obtenir des propriétés de la fenêtre et en cochant SSS Activé la case"). Ce tutoriel m'a guidé la façon de créer le certificat et de le corriger.
Créer une classe
Et à l'intérieur de votre web config ajouter quelque chose comme cela
Et puis vous l'utilisez comme une