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:
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
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
y
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
Publicar un comentario