Question

Je travaille avec WCF (VS2005, .Net 3.0) et que vous souhaitez tester un service en appelant directement via un navigateur Web au lieu du code.

J'ai une méthode décorée avec l'attribut OperationContract appeler GetTest (). J'ai le service derrière un fichier .svc que je peux accéder; Cependant, quand je vais ... / Test.svc / GetTest, seul un écran vide arrive.

Voici le 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>

Chaque fois que je tente de mettre un point d'arrêt dans le service, il ne pas être touché aussi bien. Toutes les idées sur où je vais mal ici? Je suis habitué aux services ASMX où je reçois une réponse quand j'accéder aux méthodes via un navigateur; Cependant, je ne peux obtenir le « Vous avez créé un service » page lorsque j'accéder au service, mais rien des méthodes.

Était-ce utile?

La solution

WCF ne propose pas les options « l'appeler à partir du Web » que les services ASMX utilisés pour faire. Pourquoi? Il est un trou de sécurité énorme, et pas la meilleure façon de tester un service Web.

L'une des options est de faire comme @Yossi a suggéré, et utiliser l'outil de test de service WCF.

Ou mieux encore, écrivez votre propre client pour utiliser votre service Web. Cela vous aidera à faire face aux mêmes problèmes ceux qui consommeront votre service traitera, et croyez-moi, WCF peut avoir un assez grand nombre de ces déconnexions.

Ne vous méprenez pas, WCF est frikkin génial! Mais il y a beaucoup à jongler, et si vous êtes de nouveaux chances sont que vous allez vous tromper. Même adoptants précoces ne connaissent pas encore tous les tenants et les aboutissants de WCF.

Autres conseils

Pensez à utiliser le service WCF outil de test pour le test initial de votre service (mais les tests unitaires vraiment- est votre ami :-)) (et ouais - vous aurez besoin d'un point de terminaison MEX, au moins initialement)

En ce qui concerne le débogage - vous attaché au bon processus qui héberge le service? vous compilé avec les symboles de débogage? si le service est publié à IIS - est le code publié le même que le code en studio visuel

Avez-vous essayé d'utiliser SoapUI ? Ils fournissent une très grande Web Services Outil de test. Ils ont même une version gratuite qui fonctionnera comme WebStart!

En outre, essayez d'installer un point de terminaison MEX, CF. msdn lien.

Jetez un oeil à WebGetAttribute -. Qui a besoin .NET 3.5

Cela vous permet d'obtenir des données REST d'un service Web WCF.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top