Pregunta

Estoy trabajando con WCF (VS2005, .Net 3.0) y quiere poner a prueba un servicio llamando directamente a través de un navegador web en lugar de a partir del código.

He un método decorado con el atributo OperationContract llamar GetTest (). Tengo el servicio detrás de un archivo .svc que puedo acceder; Sin embargo, cuando voy ... / Test.svc / GetTest, sólo una pantalla en blanco aparece.

Aquí es el web.config:

<system.serviceModel>
  <services>
    <service name="TestService" behaviorConfiguration="TestBehavior">
      <endpoint
        address=""
        binding="basicHttpBinding"
        contract="TestService.ITestService"></endpoint>
    </service>
  </services>
  <behaviors>
    <serviceBehaviors>
      <behavior name="TestBehavior">
        <serviceMetadata httpGetEnabled="true"/>
      </behavior>
    </serviceBehaviors>
  </behaviors>
</system.serviceModel>

Siempre que intente establecer un punto de interrupción en el servicio, que no recibe un golpe así. ¿Alguna idea sobre dónde voy mal aquí? Estoy acostumbrado a los servicios ASMX donde consigo una respuesta cuando accedo a los métodos a través de un navegador; Sin embargo, sólo puedo obtener el "Usted ha creado un Servicio" página cuando accedo al servicio, pero nada de los métodos.

¿Fue útil?

Solución

WCF no ofrece las opciones "llamarlo desde la web" que los servicios ASMX solían hacer. ¿Por qué? Es un enorme agujero de seguridad, y no es la mejor manera de probar un servicio web.

Una opción es hacer lo que sugirió @Yossi, y utilizar la herramienta de prueba de servicio WCF.

O mejor aún, escribir su propio cliente a consumir su servicio web. Esto le ayudará a lidiar con los mismos problemas a los que va a consumir su servicio se ocupará, y créanme, WCF puede tener un buen número de esos problemas de bloqueo.

No me malinterpreten, WCF es frikkin increíble! Sin embargo, hay mucho que hacer malabares, y si eres nuevas probabilidades son que va a hacerlo mal. Incluso los primeros usuarios todavía no conocen todos los pormenores de la WCF.

Otros consejos

Considere el uso de la herramienta WCF Servicio prueba para la prueba inicial de su servicio (pero las pruebas unitarias realmente- es su amigo :-)) (y sí - se necesita un mex punto final, al menos al principio)

En cuanto a la depuración - se le asignó al proceso que aloja el servicio correcto? se ha compilado con símbolos de depuración? si el servicio se publica a IIS -? El código publicada el mismo que el código en Visual Studio

¿Ha intentado utilizar SoapUI ? Proporcionan una muy buena herramienta de prueba de servicios web. Incluso tienen una versión gratuita que funcionará como un webStart!

Además, trate de instalar un punto final mex, compárese MSDN enlace.

Tome un vistazo a WebGetAttribute -. Que necesita .NET 3.5

Esto le permite obtener datos REST de un servicio web WCF.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top