2010-01-05 17 views
6

tengo IIS 6.0 en Windows Server 2003.Cómo implementar un servicio WCF en IIS 6.0

he instalado .NET 3.5 y 4 cosas ASP beta 2. "normal" están trabajando (perfecto). Pero cuando trato de navegar a mi servicio (/myServer/MyService.svc) obtengo un 404. Página no encontrada.

Para ser exactos, obtuve una política de bloqueo de la extensión del servicio web 404 2 "que impide esta solicitud."

que utilizan ServiceModelReg.exe /ia para asegurarse de que la extensión he conocido y he comprobado la configuración mediante:

admin-herramientas, IIS, hogar-tab, configuración, ejecutable-caja, y no:

Extensión : .svc, ruta: c:\windows\microsoft.net\framework\v4.0.210..., verbos: todos los verbos.

Así que todo parece estar bien. Pero aún obtengo un 404-2.

+0

es que su elección/deseo de que los archivos .SVC quedan a cargo de .NET 4 ya ?? –

Respuesta

2

¿Puede mostrarnos su servidor web.config (solo la sección <system.serviceModel>)? ¿En qué parte de tu servidor vive tu servicio?

Cuando se aloja en IIS, su dirección de servicio se define por:

  • nombre del servidor (o dirección IP)
  • nombre del directorio virtual (además de los subdirectorios de dicha) en el que su * .svc vive archivo
  • el propio archivo * .SVC

Por lo tanto, sería algo así como:

http://YourServer/YourVirtualDirectory/MyService.svc 

Parece que no usa un directorio virtual en la ruta que menciona: ¿su archivo * .svc está realmente en la raíz del servidor web, o se olvidó de agregar el directorio virtual a su ruta?

1

La información en esta publicación de blog resultó invaluable para hacer que esto funcione.

http://xamlcoder.com/blog/?p=7

No estoy seguro acerca de IIS6, pero he creado un nuevo sitio web en IIS 7 (no pude conseguir que las cosas funcionen bajo un directorio virtual, pero que es probablemente mi falta de conocimiento IIS) puse mi .svc archivo en el directorio raíz y en ~/Servicios/

Todo comenzó a funcionar genial.

El blog mencionaba que IIS debería buscar en ~/Services/automatically cada vez que se publica un archivo .svc pero no funcionaba. Es por eso que simplemente copié el archivo .svc a la raíz de mi sitio web.

Espero que esto ayude.

7

Su "política de bloqueo de la extensión del servicio web" impide que la extensión ISAPI de ASP.NET 4.0 procese su solicitud. A mí me pasó, comprobar que funciona:

C:\>cscript c:\WINDOWS\system32\iisext.vbs /ListFile 
Microsoft (R) Windows Script Host Version 5.6 
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved. 

Connecting to server ...Done. 

Status/Extension Path 
------------------------ 
0 C:\WINDOWS\system32\inetsrv\httpodbc.dll 
0 C:\WINDOWS\system32\inetsrv\ssinc.dll 
0 C:\WINDOWS\system32\inetsrv\asp.dll 
1 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll 
0 *.exe 
0 C:\WINDOWS\system32\inetsrv\httpext.dll 
0 *.dll 
1 C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll 
1 C:\WINDOWS\system32\MQISE.DLL 
0 C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll 

¿Tiene un "0" al lado de la aspnet_isapi.dll v4.0 como lo hice? Ahí está tu problemaEs necesario que le permita:

C:\>cscript c:\WINDOWS\system32\iisext.vbs /EnFile C:\WINDOWS\Microsoft.NET\Frame 
work64\v4.0.30319\aspnet_isapi.dll 
Microsoft (R) Windows Script Host Version 5.6 
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved. 

Connecting to server ...Done. 
Enabling extension file complete. 

Para obtener más información sobre la herramienta iisext.vbs: http://support.microsoft.com/kb/328419/

+0

Gracias por los grandes detalles. Usted resolvió mi problema. –

+0

muchas gracias por esta publicación – holzleube

+0

Este fue exactamente mi problema. Actualmente estoy solucionando un problema en un servidor antiguo y obtener WCF trabajando en Win2003/IIS6 tomó más tiempo de lo que esperaba. – JCallico

Cuestiones relacionadas