Estoy desarrollando una aplicación basada en .Net Framework 3.5 sp1 y alojada en Windows Server 2008 (64bit).
Mientras navegaba por el servicio wcf (.svc) localmente, todo está bien, pero mientras navegaba con la URL de dominio completo, se produjo un error.
La dirección local es así: http: //localhost/MyService.svc
y la dirección de dominio es así: http://MySite.ir/MyService.svc
por cierto, las páginas (.aspx) y otros archivos funcionan correctamente tanto en localhost como con la dirección de dominio.
Cualquier idea sera apreciada
Aquí hay un error detallado:
Error HTTP 404.3 - No encontrado
La página que está solicitando no se puede servir debido a la configuración de la extensión. Si la pagina es un script, agregue un controlador. Si el archivo debe descargarse, agregue un mapa MIME. Información detallada sobre errores
Módulo: StaticFileModule
Notificación: ExecuteRequestHandler
Controlador : StaticFile
Código de error: 0x80070032
URL solicitada: http://MySite.ir:80/MyService.svc
Ruta física: D: \ inetpub \ vhosts \ MySite.ir \ httpdocs \ MyService.svc
Método de inicio de sesión: anónimo
Usuario de inicio de sesión anónimo
OK, aquí está la respuesta:
Vaya a Asignaciones de manejadores | Agregar administrador de controlador -> Y luego agregue la siguiente información
Ruta de solicitud: * .svc
Tipo: System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089
Nombre: svc-Integrated
fuente
path="*.svc"
yverb="*"
funcionó muy bien. Por lo tanto, la línea que usé que funcionó fue:<add name="svc-Integrated" path="*.svc" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
(agregada en configuration / system.webServer / handlers).Si alguien tiene este problema en Windows Server 2012, la respuesta de Bill Moon aquí lo resolvió para mí:
"Para Windows Server 2012 ... Desde el Administrador del servidor, haga clic en Agregar roles y características, seleccione el servidor apropiado, luego seleccione Características. En Características de .NET Framework 4.5, verá WCF Services, y debajo de eso, busque Activación HTTP ".
fuente
Tengo Windows 10 en mi computadora portátil y uso Visual Studio 2015 para el desarrollo de WCF. WCF funciona bien en Visual Studio, pero cuando se aloja en IIS, obtengo el mismo error.
Revisé el controlador de IIS. Faltaba la extensión svc. Así que intenté agregar un nuevo controlador en IIS como lo sugirió Mori en la primera respuesta. No encontré el tipo "System.ServiceModel.Activation.HttpHandler".
Así que abrí "Activar o desactivar las funciones de Windows" e instalé las funciones resaltadas en la captura de pantalla.
Esto funcionó para mí.
fuente
Si está utilizando .Net 4.x, PublicKeyToken es 31bf3856ad364e35.
Sin embargo, siguiendo esta publicación sobre cómo instalar los servicios WCF correctamente en IIS, el controlador se configuró para mí.
fuente
Quería agregar esto como un comentario a la respuesta, pero no tenía suficiente reputación para ello. Intenté ejecutar ServiceModelReg y aspnet_regiis.exe con varios indicadores y agregué la función de activación HTTP, pero aún así no funcionó. Incluso el uso de la interfaz de usuario de mapeo del controlador en IIS no funcionó, ya que no pudo encontrar System.ServiceModel.Activation.HttpHandler. Lo que finalmente funcionó fue agregar el controlador que Mori menciona manualmente a mi archivo web.config.
<system.webServer> <handlers> <add name="svc-Integrated" path="*.svc" verb="GET,HEAD,POST,DEBUG" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" modules="ManagedPipelineHandler" scriptProcessor="" resourceType="Unspecified" requireAccess="Script" allowPathInfo="false" preCondition="integratedMode" responseBufferLimit="4194304" />
Mi proyecto estaba ejecutando .Net 3.5 e IIS 7.5 en Windows 7 e IIS 7.0 en Win Server 2008 R2.
fuente
Intente desmarcar las activaciones HTTP de WCF desde la ventana "Activar o desactivar las funciones de Windows" ( consulte aquí ) y vuelva a instalarlo en
%windir%\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\
y ejecutar
ServiceModelReg -i
fuente