WCF en IIS8; * La asignación del controlador .svc no funciona

272

Estoy tratando de ejecutar un servicio wcf en IIS8 en 2012 build 8400.

Al instalar la función web, no se encontraron las cosas de wcf (bajo 3.51) como en 2008.

Cuando se instaló la asignación del controlador svc faltaba, así que hice un:

%windir%\Microsoft.NET\Framework\v3.0\WindowsCommunication Foundation\ServiceModelReg.exe i

Ahora el mapeo del controlador está ahí, pero aún obtengo:

The resource you are looking for does not have a handler associated with it.

(Eliminé el controlador de archivos estáticos).

El sitio está utilizando la canalización clásica para utilizar la suplantación.

Carl R
fuente

Respuestas:

553

Más específicamente:

  1. Ejecutar Server Manager(en la barra de tareas y el menú de inicio)
  2. Elija el servidor para administrar (probablemente el servidor local)
  3. Desplácese hacia abajo a la Roles and Featuressección " ".
  4. Elija " Add Role or Feature" del menú desplegable Tareas
  5. En el Add Role or Feature Wizardcuadro de diálogo " ", haga clic en " Features" en la lista de páginas a la izquierda.
  6. Expandir ".Net 3.5"o ".Net 4.5", dependiendo de lo que haya instalado. (puede volver a la rolespantalla " " para agregar si no tiene.
  7. En " WCF Services", marque la casilla " HTTP-Activation". También puede agregar tipos que no sean http si sabe que los necesita (tcp, canalizaciones con nombre, etc.).
  8. Haga clic en el "Install"botón
Brian Jimdar
fuente
66
Este no funcionó en mi caso porque estoy en Windows 8 (con IIS 8).
Josh Mouch
9
Si primero ejecutó ServiceModelReg.exe –i desde el directorio v3.0, también debe ejecutar ServiceModelReg.exe –ua para deshacerlo antes de que esto funcione.
Scott Anderson el
14
Desde la línea de comandos: dism / Online / Enable-Feature / FeatureName: WCF-HTTP-Activation / All
Richard
44
¿Qué pasa con gyorgybalassy.wordpress.com/2012/09/24/… ? cual es mejor manera?
Kiquenet
9
Literalmente estuve mirando la página "Roles del servidor" durante una hora. No tenía idea de que podía hacer clic en "Siguiente" o hacer clic en "Características" a la izquierda. o_O +1
Dan Bechard
219

Tuve que habilitar HTTP Activationen .NET Framework 4.5 Advanced Services>WCF Services

Habilitar activación HTTP

joshcomley
fuente
10
esto es lo que necesita hacer para Windows 8 donde no hay un administrador de servidores
Simon_Weaver
2
Esta es la respuesta cuando aloja el servicio WCF en Windows 8 y Windows 8.1
vcRobe
La activación http. ¿Es independientemente si usa http / https? Entonces, ¿se trata de un nombre de resumen para ambos o todavía se necesita una distinción?
Thomas
2
Me enfrenté a un problema similar en IIS 10, la activación de HTTP está desactivada de forma predeterminada. Habilitarlo resolvió el problema de inmediato. ¡Gracias!
dhruvpatel
44
Funciona para Windows 10, IIS 10
watbywbarif
45

active lo siguiente en 'Activar o desactivar las características de Windows'

a) .Net Framework 3.5 - WCF HTTP Activation y Non-Http Activation

b) todo bajo Servicios WCF

Dino
fuente
1
Solo tuve que encender .Net Framework 3.5 - Activación HTTP WCF
daveywc
40

Windows 8 con IIS8

  • Golpear Windows+X
  • Seleccionar Programs and Features(primer elemento de la lista)
  • Seleccionar Turn Windows Features on or offa la izquierda
  • Expandir .NET Framework 4.5 Advanced Services
  • Expandir WCF Services
  • Habilitar HTTP Activation
Simon_Weaver
fuente
cualquier script de PowerShell para hacerlo programáticamente?
Kiquenet
tenemos un servidor, así que nunca
entro
28

Prefiero hacer esto a través de un script hoy en día

REM install the needed Windows IIS features for WCF
dism /Online /Enable-Feature /FeatureName:WAS-WindowsActivationService
dism /Online /Enable-Feature /FeatureName:WAS-ProcessModel
dism /Online /Enable-Feature /FeatureName:WAS-NetFxEnvironment
dism /Online /Enable-Feature /FeatureName:WAS-ConfigurationAPI
dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation
dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation45

REM Feature Install Complete
pause
Jon
fuente
2
Gracias dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation45fueron suficientes para mí ...
Shubh
Esta es la mejor manera de solucionar esto en una nueva versión 2012R2 + de Windows Server. Probablemente también funcione en 2012, pero afortunadamente, no tengo más de esos para probar esto.
Paul Sturm el
y usando el script de PowerShell ?
Kiquenet
@ Kiquenet Todos estos comandos funcionarán en PowerShell. Si intentó copiar directamente sobre el comando de Shubh, debe agregar un salto de línea o punto y coma después del primer comando antes del segundo comando dism.
kb4000
10

Logramos resolver el error en Windows Server 2012 de la siguiente manera:

  1. Eliminación del "Asistente para eliminar roles y características" .NET Framework 4.5 Features / ASP.NET 4.5 y todas sus características dependientes
  2. Reinstalar las características eliminadas.

Parece que el orden de instalación es la causa.

Además, asegúrese de tener la Activación HTTP instalada en Servicios WCF.

Radu Damian
fuente
Hice esto y parece haber matado a mi servidor. Solo desinstalé las cosas de asp.net en iis, pero ahora cuando entro de manera remota me sale una pantalla negra y una ventana de símbolo del sistema, como si el servidor fuera solo "núcleo del servidor" ahora ... :(
MGOwen
@ MGOwen cuando elimina algunas de las características de .net 4.5 parece que también elimina el Shell gráfico del servidor, esto puede agregarse nuevamente con algunos comandos.
John
3

Para las máquinas con Windows 8 no existe la aplicación "Administrador del servidor" (al menos no pude encontrarla).

Aunque pude resolver el problema . No estoy seguro de en qué secuencia hice las siguientes operaciones, pero parece que una / algunas de las siguientes acciones ayudan:

  1. Active lo siguiente en 'Activar o desactivar las características de Windows' a) .Net Framework 3.5 - Activación HTTP WCF y Activación no Http b) todo bajo Servicios WCF (como se especifica en una de las respuestas a esta pregunta)

  2. ejecutó "ServiceModelReg.exe –i" en la carpeta "% windir% \ Microsoft.NET \ Framework \ v3.0 \ Windows Communication Foundation \"

  3. ASP.NET 2.0 registrado a través de dos comandos (en la carpeta C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727):

    aspnet_regiis -ga "NT AUTHORITY \ NETWORK SERVICE" aspnet_regiis -iru

  4. Reinicié la PC ... parece que como resultado, las acciones ## 3 y 4 se rompieron en mi configuración de ASP.NET

  5. Repita la acción # 2

  6. Instale otras dos opciones de los "Programas y características": .Net Framework 4.5 Advanced Services. Revisé ambas opciones secundarias: ASP.NET 4.5 y servicios WCF

  7. Reinicie el grupo de aplicaciones.

La secuencia es un poco loca, pero eso me ayudó y probablemente ayudará a otros

Budda
fuente
El bit clave está activando la Activación HTTP.
Umar Farooq Khawaja
¿Qué pasa con gyorgybalassy.wordpress.com/2012/09/24/… ?
Kiquenet
2

El orden de instalación es muy importante al configurar IIS 8 en Windows 8 o Windows Server 2012.

Enfrenté muchos problemas al configurar IIS 8, pero finalmente estos enlaces me ayudaron

Sunil Agarwal
fuente
2

Con PowerShell puede instalar la función requerida con:

Add-WindowsFeature 'NET-HTTP-Activation'
Owais F
fuente
1

En Windows 10 (cliente) también puede escribir esto usando

Enable-WindowsOptionalFeature -Online -NoRestart -FeatureName WCF-HTTP-Activation45 -All

Tenga en cuenta que este es un comando diferente del skus del servidor

aL3891
fuente
0

También es necesaria la función de activación HTTP de .NET framework.

Max
fuente
0

Esta fue realmente una tontería para mí. Agregando esto aquí, ya que es uno de los hilos más populares en los problemas de svc 404.

Tenía en la configuración del proyecto '\ Web \ Project URL, pegado:

http://blah.webservice.local.blahblah.com/Blah.svc

Y por alguna razón desconocida (haber hecho esto miles de veces) no descubrí de inmediato que el nombre del archivo .svc estaba al final.

DOH!

Acababa de pegar la dirección de mi cliente de prueba WCF y no la había verificado lo suficiente. Lo que esto hizo en segundo plano fue crear una aplicación IIS en la dirección .svc y no obtuve nada de IIS. No pude resolver cómo ni siquiera podía golpear el archivo .svc.

Solución simple, obviamente, simplemente elimine la aplicación en IIS y cambie la URL del proyecto.

Después de casi 20 años en esto, aún puede cometer errores de colegial / errores de novato. Espero que esto ayude a alguien.

El truco de Moby doble
fuente