2008-10-09 15 views
13

Cuando intento probar el servicio AutoLotWCFS utilizando "wcftestclient", aparece el siguiente error. ¿Qué estoy haciendo mal? Cualquier idea ayudará. Este es un servicio web simple que tiene wshttpbinding con contrato de interfaz y la implementación en el servicio. Aquí está el mensaje de error largo: El archivo Web.Config tiene 2 puntos finales, uno para el servicio web y otro para metaDataExchange. Es prácticamente todo lo predeterminado. Puedo incluir el código si es necesario, parece que no puedo adjuntar archivos aquí.WCF Errores al usar WCFTestClient para probar un servicio web de WCF simple


Error: Cannot obtain Metadata from http://localhost/AutoLotWCFService/Service.svc 
If this is a Windows (R) Communication Foundation service to which you have access, please check that you have enabled metadata publishing at the specified address. 
For help enabling metadata publishing, please refer to the MSDN documentation at http://go.microsoft.com/fwlink/?LinkId=65455. 
WS-Metadata Exchange Error 
    URI: http://localhost/AutoLotWCFService/Service.svc 
    Metadata contains a reference that cannot be resolved: 'http://localhost/AutoLotWCFService/Service.svc'. 
    The remote server returned an unexpected response: (405) Method not allowed. 
    The remote server returned an error: (405) Method Not Allowed. 
    HTTP GET Error URI: http://localhost/AutoLotWCFService/Service.svc 
    The document at the url http://localhost/AutoLotWCFService/Service.svc was not recognized as a known document type.The error message from each known type may help you fix the problem: 
    - Report from 'DISCO Document' is 'Name cannot begin with the '%' character, hexadecimal value 0x25. Line 1, position 2.'. 
    - Report from 'WSDL Document' is 'There is an error in XML document (1, 2).' -Name cannot begin with the '%' character, hexadecimal value 0x25. Line 1, position 2. 
    - Report from 'XML Schema' is 'Name cannot begin with the '%' character, hexadecimal value 0x25. Line 1, position 2.'. 

+0

¿Puede incluir las secciones de configuración relacionadas con el servicio? Difícil de decir sin eso lo que está pasando. – Bryant

+0

El contrato de servicio (y cualquier contrato de datos que se use) también sería útil. –

+0

Agregue esto a su configuración web del servidor bajo especificado, luego proporcionará el error real:

Respuesta

0

que necesita para asegurarse de que el comportamiento en servicio de configuración permite que tiene una etiqueta de metadatos con httpGetEnabled = "true"

<serviceBehaviors> 
    <behavior name="serviceBehavior"> 
    <serviceMetadata httpGetEnabled="true"> 
    </behavior> 
</serviceBehaviors> 

Además, asegúrese de que sus referencias de servicio que comportamiento.


<service name="blah" behaviorConfiguration="serviceBehavior"> 
0

Gracias; lo crea o no, el problema de al menos cargar el servicio a través de wcftestclient se resolvió cuando reinscribí ASPNET en IIS con aspnet-regiis.

El siguiente problema es poder invocar los métodos expuestos por el servicio a través de wcftestclient. ¿Cuáles son los problemas de seguridad con los que tengo que lidiar? Tuve que habilitar el inicio de sesión anónimo con la autenticación de Windows. y aún la invocación generó excepciones que apuntaban a algo relacionado con la violación de acceso. Al buscar algunas cosas, apunte a la instalación de certificados para poder invocar. Por favor, aclare si es posible.

15

Recientemente tuve este problema al intentar alojar WCF en mi computadora portátil con Windows Vista en IIS7.

Recibí el siguiente error por primera vez: "HTTP Error 404.3 - No encontrado" y una de las resoluciones sugeridas fue "Asegurar que se asigna el controlador esperado para la página actual".

Así que agregué manualmente un controlador para el archivo .svc y lo definí como un DiscoveryRequestHandler, pensando que esto podría ayudar. Esto causó el problema que describió anteriormente.

La resolución real era eliminar el manejador que había añadido, y para ejecutar los siguientes comandos:

CD c:\windows\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\ 
ServiceModelReg -i 

Esta solucionado el problema al y el servicio está funcionando bien. Espero que esto pueda ayudar a arrojar algo de luz sobre su problema. No puedo estar seguro, pero esto es probablemente debido al orden en el que he instalado los diversos paquetes en mi laptop dev.

+0

¡Excelente! Funcionó como por arte de magia. Tenía un problema 404.17 y esto lo solucionó. –

+0

Esto también resolvió mi error "Método no permitido". El servicio funcionaría en el servidor web incorporado de visual studio, pero no en iis en localhost. Ahora funciona con iis también. –

0

Intente comprobar si el servicio (nombre) en el Marcado del servicio (haga clic derecho en servicename.svc) coincide con el servicio (nombre) en su archivo web.config.

¡Salud!

1

Si la instalación de compenonts no funciona, intente una reparación, esta se desinstala y luego se instala.

"%WINDIR%\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" -r 
Cuestiones relacionadas