¿Cómo puedo cambiar el puerto IIS Express de un sitio?

109

Quiero cambiar el número de puerto en el que se ejecuta mi sitio web mientras depuro desde Visual Studio. Estoy usando Visual Studio 2012 y estoy usando ASP.NET MVC 4 para mis proyectos. Quiero cambiar el puerto. El puerto aleatorio o fijo cualquiera funcionará solo quiere cambiar el puerto.

Mohit
fuente

Respuestas:

128

Para especificar un puerto para un proyecto de aplicación web que usa IIS Express

  1. En el Explorador de soluciones, haga clic con el botón derecho en el nombre de la aplicación y luego seleccione Propiedades. Haga clic en la pestaña Web.

  2. En la sección Servidores, en Usar servidor web IIS local, en el cuadro URL del proyecto, cambie el número de puerto.

  3. A la derecha del cuadro URL del proyecto, haga clic en Crear directorio virtual y luego haga clic en Aceptar.

  4. En el menú Archivo, haga clic en Guardar elementos seleccionados.

  5. Para verificar el cambio, presione CTRL + F5 para ejecutar el proyecto. El nuevo número de puerto aparece en la barra de direcciones del navegador.

De cómo: especifique un puerto para el servidor de desarrollo ( copia de seguridad de archive.org aquí ).

hutchonoid
fuente
14
Eso no funciona para sitios web. Solo para proyectos de aplicaciones web.
Supersharp
2
No hay pestaña web aquí ... Pensarías que en 2017, esto ya no sería un problema ... Eso o al menos deberíamos poder cambiar de puerto sin tener que hacer magia
calcazar
Opción de Visual Studio 2015 no existe (sitio web vacío ASP.NET) .. ¿cómo hacer?
KingRider
Había estado haciendo todo esto, excepto hacer clic en el botón Crear directorio virtual. Hacer eso hizo lo diferente; ahora funciona. Pero, ¿por qué es eso necesario?
Rod
Bueno, si hace esto, ya no está usando IIS Express, sino IIS local. Así que simplemente vaya a la pestaña Web en Propiedades del proyecto y edite el puerto a lo que necesite.
VladT
68

Aquí hay un método más manual que funciona tanto para proyectos de sitios web como para proyectos de aplicaciones web . (no puede cambiar la URL del proyecto desde Visual Studio para proyectos de sitios web).

Proyectos de aplicaciones web

  1. En el Explorador de soluciones, haga clic con el botón derecho en el proyecto y haga clic en Descargar proyecto .

  2. Navegue hasta el archivo ApplicationHost.config de IIS Express . De forma predeterminada, este archivo se encuentra en:

    %userprofile%\Documents\IISExpress\config

    En versiones recientes de Visual Studio y proyectos de aplicaciones web, este archivo se encuentra en la carpeta de la solución debajo [Solution Dir]\.vs\config\applicationhost.config(tenga en cuenta que la carpeta .vs es un elemento oculto)

  3. Abra el archivo ApplicationHost.config en un editor de texto. En la <sites>sección, busque el nombre de su sitio. En la <bindings>sección de su sitio, verá un elemento como este:

    <binding protocol="http" bindingInformation="*:56422:localhost" />

    Cambie el número de puerto (56422 en el ejemplo anterior) por el que desee. p.ej:

    <binding protocol="http" bindingInformation="*:44444:localhost" />

    Bonificación: incluso puede vincularse a un nombre de host diferente y hacer cosas interesantes como:

    <binding protocol="http" bindingInformation="*:80:mysite.dev" />

    y luego asignar mysite.deva 127.0.0.1en su hostsarchivo y abra su sitio web desde " http://mysite.dev "

  4. En el Explorador de soluciones, haga clic con el botón derecho en el proyecto y haga clic en Recargar proyecto .

  5. En el Explorador de soluciones, haga clic con el botón derecho en el proyecto y seleccione Propiedades.

    • Seleccione la pestaña Web.

    • En la sección Servidores, en Usar servidor web IIS local, en el cuadro URL del proyecto, ingrese una URL que coincida con el nombre de host y el puerto que ingresó en el archivo ApplicationHost.config de antes.

    • A la derecha del cuadro URL del proyecto, haga clic en Crear directorio virtual. Si ve un mensaje de éxito, significa que ha realizado los pasos correctamente.

    • En el menú Archivo, haga clic en Guardar elementos seleccionados.

Proyectos de sitios web

  1. En el Explorador de soluciones, haga clic con el botón derecho en el nombre del proyecto y luego haga clic en Eliminar o Eliminar ; no se preocupe, esto elimina el proyecto de su solución, pero no elimina los archivos correspondientes en el disco.

  2. Siga el paso 2 anterior para proyectos de aplicaciones web.

  3. En el Explorador de soluciones, haga clic con la solución, seleccione Agregar y, a continuación, seleccione existente del sitio Web ... . En el cuadro de diálogo Agregar sitio web existente, asegúrese de que la pestaña IIS local esté seleccionada. En Sitios de IIS Express, seleccione el sitio para el que ha cambiado el número de puerto y luego haga clic en Aceptar.

Ahora puede acceder a su sitio web desde su nuevo puerto / nombre de host.

Saeb Amini
fuente
1
Impresionante, exactamente lo que se necesitaba. Tuve que buscar un puerto que funcionara, pero esto funcionó, gracias.
Hobwell
1
Gracias Saeb. Esto funciona perfectamente. Solo un punto a tener en cuenta ... Estoy usando el control de fuente y después de agregar mi proyecto de sitio web nuevamente, tuve que ir a Archivo> Control de fuente> Avanzado> Cambiar control de fuente y volver a vincular mi proyecto a mi servidor de control de fuente. Esto solo significó seleccionar el proyecto en la lista y hacer clic en el botón 'Enlazar' junto a 'Actualizar'. Gracias por la excelente respuesta.
Dirk Strauss
2
Excelente respuesta: en lugar de "hacer clic con el botón derecho en el nombre del proyecto y luego hacer clic en Eliminar o Eliminar", puede seleccionar "descargar proyecto en su lugar", luego editar nuevamente su applicationhost.config, el mío estaba en "<ruta a mi solución (.sln) file> \. vs \ config \ applicationhost.config "(tenga en cuenta que la carpeta .vs es un elemento oculto, así que seleccione la opción para mostrar archivos ocultos en su explorador de archivos)
Paul Gorbas
1
@PaulGorbas me alegro de que te haya ayudado. Tenga en cuenta que no puede "descargar" sitios web , eso solo funciona para aplicaciones web.
Saeb Amini
2
¿Cómo hacer que esto funcione para un puerto SSL personalizado? Para cualquier puerto excepto el 60233, obtengo "Esta página no se puede mostrar" en Internet Explorer y mensajes similares en otros navegadores web. ¿En qué parte de Windows 7 se designan los puertos SSL?
MiloDC
18

.Net Core

Para aquellos que llegaron aquí buscando esta configuración en .Net core, esto reside en el lauchSettings.json. Simplemente edite el puerto en la propiedad "applicationUrl".

El archivo debería verse así:

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:53950/", //Here
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "index.html",
      "environmentVariables": {
        "Hosting:Environment": "Development"
      },
    }
  }
}

O puede usar la GUI haciendo doble clic en las "Propiedades" de su proyecto.

Nota: tuve que volver a abrir VS para que funcionara.

fabriciorissetto
fuente
1
Brillante respuesta. Reiniciar VS funcionó para mí. Aparentemente, el ProductAgentService.exeservicio de BitDefender usa el puerto 50151 que entró en conflicto con el puerto predeterminado de IIS Express.
Silkfire
5
Los puertos SSL están restringidos a 44300-44399. Sería bueno saberlo.
FatAlbert
15

Haga clic derecho en su proyecto MVC. Vaya a Propiedades. Vaya a la pestaña Web.
Cambie el número de puerto en la URL del proyecto. Ejemplo. localhost: 50645
Cambiar el número en negrita, 50645, a cualquier otra cosa cambiará el puerto bajo el que se ejecuta el sitio.
Presione el botón Crear directorio virtual para completar el proceso.

Véase también: http://msdn.microsoft.com/en-us/library/ms178109.ASPX

La imagen muestra la pestaña web de un proyecto MVC ingrese la descripción de la imagen aquí

Ashley Medway
fuente
4

Si solo desea cambiar el puerto porque ya está en uso. Siga los siguientes pasos.

En Visual Studio

  1. Haga clic con el botón derecho en el nodo del proyecto y descargar el proyecto
  2. Haga clic con el botón derecho en el nodo Proyecto y edite el archivo .csproj.
  3. Busque las siguientes etiquetas y elimínelas
<DevelopmentServerPort>62140</DevelopmentServerPort>
<DevelopmentServerVPath></DevelopmentServerVPath>
<IISUrl>http://localhost:62116/</IISUrl>
  1. presione Ctrl + S para guardar el documento
  2. Haga clic derecho en Project Node y cargue Project

Funcionará seleccionando otro puerto al azar.

Para mayor información. por favor haga clic

Charlie
fuente
2

Otra solución para aquellos que tienen IIS instalado:

Cree una ruta en el servidor IIS y asigne su sitio web / aplicación allí.

Ve a las propiedades de la solución del explorador, luego frente a usar el iisexpress de Visual Studio, haz que vs use tu propio IIS personal.

Propiedades de la solución

Alex
fuente
2

Primero puede iniciar IIS express desde la línea de comando y darle un puerto con / port: port-number vea otras opciones .

John Henckel
fuente
2

Si estamos hablando de un sitio web, no de una aplicación web, mi problema era que la carpeta .sln real estaba en otro lugar que el sitio web y no me había dado cuenta. Busque la ruta .sln y luego la carpeta .vs (oculta) allí.

Centinela
fuente
0

Tuve el mismo problema en un proyecto WCF en VS2017. Cuando depuro, da errores como no poder obtener metadatos, pero resulta que el puerto fue utilizado por otro proceso. Obtuve una idea de aquí y finalmente descubrí dónde se guardaba el puerto. Hay 2 lugares: 1. C: ... a la carpeta de su solución .... vs \ config \ applicationhost.config. En el interior, puede encontrar el sitio que depura. Debajo, elimine el problema con el puerto. 2. C: ... a la carpeta de su proyecto ... \, verá un archivo con ProjectName.csproj.user. Elimina este archivo.

Por lo tanto, cierre la solución, elimine el archivo de usuario y el mencionado anteriormente, luego vuelva a abrir la solución, VS encontrará otro puerto adecuado para el sitio.

Huky
fuente
0

Estoy usando VS 2019.

Si su solución tiene más de un proyecto / biblioteca de clases, etc., es posible que no vea la pestaña Web al hacer clic en Propiedades del explorador de soluciones.

Al hacer clic en el proyecto MVC y luego verificar las propiedades, se revelará la pestaña web donde puede cambiar el puerto.

Shaakir
fuente
-2

Edite el archivo .sln con un editor como el bloc de notas.

Reemplazar todos los puertos por un puerto nuevo.

aDDin
fuente
Esta es una solución válida si está utilizando el proyecto de sitio web de estilo antiguo (es decir, para archivos ASP Classic) en VS2019. Debe editar el archivo de la solución porque no hay otras páginas de propiedades. Mi proyecto se ve así en el archivo sln. Proyecto ("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "MyWebSitePrj", " localhost: 50194 ", "{BC30BA4B-1D1D-48D0-B1E8-86CBD64611B5}"
Brad Irby
-6

Implemente su aplicación en IIS con el puerto predeterminado. Intente depurarlo usando Visual Studio. Es una buena práctica. Si usa Visual Studio, seguirá cambiando el número de puerto la mayor parte del tiempo. Así que es mejor implementar primero la aplicación en IIS y abrir la misma en Visual Studio y depurarla.

Arjunan
fuente
Estimado Mark: ¡No creo que hayas leído la pregunta con atención!
Mohit
1
Además, no es una buena práctica desarrollar directamente contra IIS. Este artículo de MSDN explica cuándo debe usar IISExpress, IIS o un servidor externo al desarrollar. msdn.microsoft.com/en-us/library/58wxa9w5(v=vs.120).aspx
Itanex