jueves, 12 de junio de 2014

Solucion al Error: No se pudo encontrar el tipo 'XXXXXXXX' proporcionado como el valor del atributo Service en la directiva ServiceHost, o proporcionado ... en web services WCF

Cuando se crea servicios WCF con Visual Studio suele ocurrir este error:

-------------------------------------------------------------------------------------------

Error de servidor en la aplicación '/'.

No se pudo encontrar el tipo 'Architecs.QuejasService.service1' proporcionado como el valor del atributo Service en la directiva ServiceHost, o proporcionado en el elemento de configuración system.serviceModel/serviceHostingEnvironment/serviceActivations.

Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.

Detalles de la excepción: System.InvalidOperationException: No se pudo encontrar el tipo 'Architecs.QuejasService.service1' proporcionado como el valor del atributo Service en la directiva ServiceHost, o proporcionado en el elemento de configuración system.serviceModel/serviceHostingEnvironment/serviceActivations.

Error de código fuente:

Se ha generado una excepción no controlada durante la ejecución de la solicitud Web actual. La información sobre el origen y la ubicación de la excepción pueden identificarse utilizando la excepción del seguimiento de la pila siguiente.

Seguimiento de la pila:


[InvalidOperationException: No se pudo encontrar el tipo 'Architecs.Que
jasService.service1' proporcionado como el valor del atributo Service 
en la directiva ServiceHost, o proporcionado en el elemento de configu
ración system.serviceModel/serviceHostingEnvironment/serviceActivations.]
   System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(
String constructorString, Uri[] baseAddresses) +59318
   System.ServiceModel.HostingManager.CreateService(String normalizedV
irtualPath, EventTraceActivity eventTraceActivity) +1434
   System.ServiceModel.HostingManager.ActivateService(ServiceActivatio
nInfo serviceActivationInfo, EventTraceActivity eventTraceActivity) +52
   System.ServiceModel.HostingManager.EnsureServiceAvailable(String no
rmalizedVirtualPath, EventTraceActivity eventTraceActivity) +598

[ServiceActivationException: El servicio '/QuejaServiceMessage.svc' no 
se puede activar debido a una excepción durante la compilación.
 

-------------------------------------------------------------------------------------------
Este error ocurre cuando se ha cambiado el nombre del archivo manualmente, sin haber actualizado las referencias.

Es muy fácil de solucionar , se debe ingresar al archivo .svc de tu proyecto


-------------------------------------------------------------------------------------------



Cuando aparesca el marcado, le aparecerá algo así:

<%@ ServiceHost Language="C#" Debug="true" Service="Architecs.QuejasService.service1" CodeBehind="QuejaServiceMessage.svc.cs" %>

se debe cambiar por algo así:

<%@ ServiceHost Language="C#" Debug="true" Service="Architecs.QuejasService.QuejaServiceMessage" CodeBehind="QuejaServiceMessage.svc.cs" %>

donde Architecs.QuejasService.service1 se cambio por Architecs.QuejasService.QuejaServiceMessage el cual es el nombre real del archivo, del servicio y del espacio de nombres.


y así se soluciona este error, si se hizo todo bien le aparecerá algo parecido:

Servicio de QuejaServiceMessage

Creó un servicio.
Para probarlo, deberá crear un cliente y usarlo para llamar al servicio. Para ello, puede usar la herramienta svcutil.exe en la línea de comandos con la siguiente sintaxis:

svcutil.exe http://localhost:62070/QuejaServiceMessage.svc?wsdl
También puede tener acceso a la descripción del servicio como un solo archivo:
http://localhost:62070/QuejaServiceMessage.svc?singleWsdl
Esto generará un archivo de configuración y un archivo de código que contiene la clase de cliente. Agregue los dos archivos a la aplicación cliente y use la clase de cliente generada para llamar al servicio. Por ejemplo:
C#
class Test
{
    static void Main()
    {
        QuejaServiceMessageClient client = new QuejaServiceMessageClient();

        // Use la variable 'client' para llamar a operaciones en el servicio.

        // Cierre siempre el cliente.
        client.Close();
    }
}



Saludos



13 comentarios: