visual-studio-2008 - tenga - hubo un error al descargar los metadatos desde esta direccion
No se pudo depurar el mensaje del servicio WCF (11)
Agregue esta línea de código después de crear su referencia de servicio en su cliente.
MyWCFService.IService _proxy = new MyWCFService.IService();
_proxy.ClientCredentials.Windows.ClientCredential = System.Net.CredentialCache.DefaultNetworkCredentials;
Tengo una solución de Visual Studio 2008 con un servicio WCF y un cliente.
Cuando ejecuto mi cliente y llamo a un método de mi servicio, aparece un mensaje que dice "No se puede depurar automáticamente ''Home.Service''. No se pudo depurar el procedimiento remoto. Esto generalmente indica que la depuración no se ha habilitado en el servidor. "
He buscado en Google y he intentado lo siguiente.
<system.web>
<compilation debug="true" />
</system.web>
ha sido agregado en app.config tanto en el cliente como en el servidor.
También me he asegurado de que el proyecto se esté compilando en modo de depuración.
¿Qué más podría estar causando este mensaje?
Editar: se agregó más información basada en preguntas de comentarios
- Está utilizando wsHttpBinding
Yo he puesto
<serviceDebug includeExceptionDetailInFaults="true"/>
estoy usando
var service = new HomeReference.HomeServiceClient(); service.ClientCredentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials;
Lamentablemente, el error aparece la primera vez que llamo a un método en mi Servicio. Puedo descartar el cuadro de mensaje y la aplicación continúa funcionando. Cualquier excepción lanzada en el servidor no se propaga de nuevo al cliente (supongo que debería hacerlo).
En mi caso, el problema resultó ser algo completamente diferente. Cambié el nombre de una operación en el servicio web y olvidé actualizar el cliente. Por algún motivo, esto produjo el error "No se puede depurar automáticamente ...".
En mi caso, el problema resultó ser una falta de coincidencia entre las configuraciones de seguridad en el cliente y el servidor. Estaba usando un enlace personalizado como este:
<customBinding>
<binding name="AuthorisedBinaryHttpsBinding" receiveTimeout="00:03:00" sendTimeout="00:03:00">
<!-- this next element caused the problem: -->
<security authenticationMode="UserNameOverTransport">
</security>
<binaryMessageEncoding>
<readerQuotas maxDepth="100" maxStringContentLength="1000000"
maxArrayLength="655360000" />
</binaryMessageEncoding>
<httpsTransport />
</binding>
</customBinding>
Cuando eliminé el elemento de seguridad que he resaltado anteriormente, desapareció el problema con el mensaje "No se pudo depurar automáticamente".
Para resolver el problema, primero activé el seguimiento de WCF . Esto me mostró que WCF lanzaba una MessageSecurityException :
El procesador de seguridad no pudo encontrar un encabezado de seguridad en el mensaje. Esto puede deberse a que el mensaje es un error no asegurado o porque existe una falta de correspondencia vinculante entre las partes que se comunican. Esto puede ocurrir si el servicio está configurado para seguridad y el cliente no está usando seguridad.
Eso me apuntó a mirar las configuraciones de enlace en el lado del cliente. Resultó que no había agregado el elemento de seguridad requerido a mi enlace personalizado allí. Como estaba haciendo esto a través del código, necesitaba lo siguiente (observe la tercera línea):
var binding = new CustomBinding(
binaryEncoding,
SecurityBindingElement.CreateUserNameOverTransportBindingElement(),
new HttpsTransportBindingElement { MaxReceivedMessageSize = MaxMessageSize, });
En cuanto a por qué Visual Studio mostraba ese error, no tengo idea, me parece un error.
En su servicio web web.config, asegúrese de que la depuración de compilación esté establecida en verdadero. ¡Eso debería arreglar tu problema!
Estuve peleando con este mismo error exacto durante más de una hora y bajo y he aquí que reinicié VS2008 y se arregló mágicamente. Pruébalo ya que podría ahorrarte algo de tiempo.
Has probado
<serviceBehaviors>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
Para fines de depuración?
Edit: no importa, creo que entendí mal la pregunta
He tenido un problema similar y resulta que la autenticación de Windows no se ha habilitado en el sitio / directorio virtual de IIS.
¿Has intentado configurar el modo de autenticación en Integrado en lugar de Anónimo? http://msdn.microsoft.com/en-us/library/x8a5axew(VS.80).aspx
La conexión automática a un servicio tiene las siguientes limitaciones:
El servicio debe ser parte de la solución de Visual Studio que está depurando.
El servicio debe estar alojado. Puede ser parte de un proyecto de sitio web (sistema de archivos y HTTP), proyecto de aplicación web (sistema de archivos y HTTP) o proyecto de biblioteca de servicios WCF. Los proyectos de la Biblioteca de servicios de WCF pueden ser Bibliotecas de servicios o Bibliotecas de servicios de flujo de trabajo.
El servicio debe invocarse desde un cliente WCF.
La depuración debe estar habilitada con el siguiente código en el archivo app.config o Web.config:
<system.web> <compilation debug="true" /> </system.web>
Ver Limitaciones en la depuración WCF
Además, si ambos proyectos (cliente y servicio) están en la misma solución, pero se ejecutarán en diferentes procesos (por ejemplo, si está utilizando su Servidor IIS local para el desarrollo y está ejecutando su aplicación web en un grupo de aplicaciones diferente al servicio que consume), es posible que necesite habilitar " Proyectos de inicio múltiples " para la solución (en Propiedades de la solución -> Proyecto de inicio) para que el depurador se pueda conectar a ambos.
Para evitar que la ventana del navegador del servicio aparezca cada vez que depure, puede configurar la "Acción de inicio" (en las propiedades del proyecto de servicio) en "No abrir una página. Espere la solicitud de la aplicación externa".
Esto es por experiencia personal y puede ayudar a otros.
La otra razón por la que puede ver este error (y creo que es el caso para mí) es si está ejecutando Windows de 64 bits. Aparentemente Visual Studio no tiene ningún soporte de depurador x64.
Puede solucionar esto cambiando el objetivo de la plataforma para la aplicación de consumo:
Propiedades del proyecto -> Construir -> Cambiar "Objetivo de la plataforma" a "x86".
Lamentablemente, esto no funcionará para mí, ya que estoy tratando de ejecutarlo en el AppFabric de desarrollo de Windows Azure, que parece requerir todo para ejecutarse en modo de 64 bits.
También puede ser que se use el mismo número de puerto en IISExpress e IIS. Si está desarrollando una aplicación WCF en Visual Studio e IISExpress y luego instala la misma aplicación en su IIS local, asegúrese de no utilizar el mismo número de puerto en IIS e IISExpress. Usar el mismo número de puerto dará lugar a este mensaje de error.
También tengo el mismo problema. Cambié en archivos de configuración de cliente y servicio como
La depuración de la compilación se establece en verdadero.
Esto funcionó para mí.