2012-10-16 4 views
3

J'ai un service Web WCF avec 3 points d'extrémité. Mais lorsque je le débogue au client de test WCF, il affiche uniquement un point de terminaison basicHttpBinding.Le client de test WCF affiche 1 point de terminaison, tandis que le fichier de configuration expose 3 points de terminaison

1: Pourquoi cela?

2: Ici, j'avoir un contrat d'exploitation « CallADSWebMethod » qui retourne un DataContract (VINDescription) .. Juste curieux de savoir .. pourquoi cela fonctionne très bien pour moi en temps réel mais il n'est pas testable par le client de test ..Je signifie client test dit « Cette opération est prise en charge par le client de test »

3: ici, dans les endpointBehaviors - je n'ai donné et non ... Mais encore travaille à partir jquery appel ajax .. Alors, quelle est la signification de "enableWebScript" ??

Test client Image

Config Infos

<system.serviceModel> 
    <services> 
     <service behaviorConfiguration="asmx" name="ADSChromeVINDecoder.Service"> 
     <endpoint address="basic" 
        binding="basicHttpBinding" 
        name="httpEndPoint" 
        contract="ADSChromeVINDecoder.IService"/> 
     <endpoint address="json" 
        binding="webHttpBinding" 
        behaviorConfiguration="webBehavior" 
        name="webEndPoint" 
        contract="ADSChromeVINDecoder.IService"/> 
     <endpoint contract="IMetadataExchange" 
        binding="mexHttpBinding" 
        address="mex" /> 
     </service> 
    </services> 
    <behaviors> 
     <endpointBehaviors> 
     <behavior name="webBehavior"> 
      <webHttp/> 
     </behavior> 
     </endpointBehaviors> 
     <serviceBehaviors> 
     <behavior name="asmx"> 
      <serviceMetadata httpGetEnabled="true"/> 
      <serviceDebug includeExceptionDetailInFaults="true"/> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true"/> 
    </system.serviceModel> 

Répondre

5

Le client test WCF ne montre que les SOAP points d'extrémité - et il n'y a qu'un seul d'entre eux (celui avec le basicHttpBinding).

  • Le critère d'évaluation json utilise webHttpBinding (qui est REST base - ne peut pas être testé par le client test WCF)

  • Le critère d'évaluation mex est le point final d'échange de métadonnées - pas un vrai service point final.

Par conséquent, le point de terminaison client test WCF afficher correctement un seul (SOAP) - il est une seule!

Mise à jour: Le client de test WCF est plutôt limité, et l'une des limites est qu'il ne peut pas traiter vos propres types de données personnalisés en tant que paramètres. Vous pouvez essentiellement tester uniquement des méthodes avec des paramètres de type int, string, datetime et similaires - les types de données simplistes.

Si vous avez besoin de tests de service Web plus poussés, consultez le (disponible gratuitement) SoapUI tool pour tester vos services Web SOAP - y compris les types de paramètres complexes et bien plus encore.

+0

Dans le même contrat d'exploitation "CallADSWebMethod" qui renvoie un DataContract (VINDescription) .. Juste curieux de savoir..pourquoi cela fonctionne bien pour moi en temps réel, mais il n'est pas encore testable par le client de test .. Je veux dire Test le client dit "Cette opération n'est pas supportée par le client de test" – James

+0

@Learner: le client de test WCF est plutôt limité, et l'une des limites est qu'il ne peut pas traiter vos propres types de données personnalisés comme des paramètres. Vous pouvez essentiellement tester uniquement des méthodes avec des paramètres de type 'int',' string', 'datetime' et autres - les types de données simplistes. –

+0

Ok..So pourrait être la nouvelle version du client de test WCF viendra avec cela. – James

Questions connexes