Pasos para publicar dotnet / WCF en IIS windows 10

Si programando llegas a la necesidad de publicar un proyecto WCF/dotnet u otro tipo de Servicio/pagina web local ocuparas tener activo el IIS de tu computadora pues de lo contrario aunque lo publiques en la carpeta inetpub -> wwwroot al intentar acceder por el navegador te aparecerá un error:

Bad Request - Invalid Hostname


HTTP Error 400. The request hostname is invalid.



Para activar el IIS local solo deberás seguir los siguientes pasos:

Ir a programas y características

Click en activar o desactivar las características de Windows





Dirígete a la carpeta de WCF Service ábrela y activa los IIS y Word Wide Web Services señalados en la imagen


Cuando aprietes aceptar te aparecerá una ventana que dirá buscando archivos necesarios esperas un momento y cuando termine listo ya debera de poder visulizar tu WCF publicado

NOTA si ocupas instalar el dotnet en el server descargar 


En ese enlace  de instalar



SDK 7.0.201



ASP.NET Core Runtime 7.0.3


en el program.cs agregar estos codigo


builder.Services.AddCors(options =>
{
options.AddPolicy(
name: "appletenhtmlAllowSpecificOrigins",
builder =>
{
builder.AllowAnyOrigin();
builder.AllowAnyHeader();
builder.AllowAnyMethod();
}
);
});

builder.Services.AddHttpContextAccessor();//poner codigo aqui arriba


Despues

app.UseCors("appletenhtmlAllowSpecificOrigins");

app.UseCors(builder =>
{
    builder
        .WithOrigins("http://localhost:84", "http://localhost:85", "http://localhost:5140", "http://localhost:5000", "https://localhost:7067")
        .SetIsOriginAllowedToAllowWildcardSubdomains()
        .AllowAnyHeader()
        .AllowCredentials()
        .WithMethods("GET", "PUT", "POST", "DELETE", "OPTIONS")
        .SetPreflightMaxAge(TimeSpan.FromSeconds(3600));
});

app.UseHttpsRedirection();//poner codigo aqui arriba cambiando los puertos que oupes


publicas de manera local y moves el codigo al wwwroot que deseas.
Si inicias el IIS podrias visuaizar el proyecto sin problemas

EDIT 2023 ya para el frontEnd utilizando Vue ocupe poner esto en la carpeta del frontEnd:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.webServer>         
      <rewrite>
           <rules>
                <rule name="DynamicContent">
                     <conditions>
                          <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="True"/>
                     </conditions>
                     <action type="Rewrite" url="index.html"/>
                </rule>
           </rules>
      </rewrite>
   </system.webServer>
</configuration>


Comentarios

Entradas más populares de este blog

Solucion al error collation desconocida: 'utf8mb4_0900_ai_ci'

Ejemplo de suma Pascal