Domanda

Sto lavorando con WCF (VS2005, .Net 3.0) e si vuole testare un servizio chiamando direttamente tramite un browser web anziché dal codice.

Ho un metodo decorato con l'OperationContract attributo chiamare GetTest (). Ho il servizio dietro un file .svc che posso accedere; tuttavia, quando vado ... / Test.svc / GetTest, solo uno schermo vuoto viene in su.

Ecco il 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>

Ogni volta che provo a impostare un punto di interruzione nel servizio, non ottiene colpito pure. Tutte le idee su dove sto andando male qui? Sono abituato a servizi ASMX dove ottengo una risposta quando accedo i metodi attraverso un browser; tuttavia, posso solo ottenere il "Hai creato un servizio" pagina quando accedo al servizio, ma nulla dai metodi.

È stato utile?

Soluzione

WCF non offre le opzioni "chiamare dal web" che i servizi ASMX utilizzati per fare. Perché? Si tratta di un buco di sicurezza enorme, e non il modo migliore per testare un servizio web.

Una possibilità è quella di fare come suggerito @Yossi, e utilizzare lo strumento di misura servizio WCF.

O meglio ancora, scrivere il proprio cliente a consumare il servizio web. Questo vi aiuterà a trattare con gli stessi problemi coloro che consumerà il vostro servizio si occuperà, e mi creda, WCF possono avere un bel po 'di quei hangups.

Non fraintendetemi, WCF è frikkin impressionante! Ma c'è un sacco di destreggiarsi, e se siete nuovi probabilità sono che stai andando a sbagliare. Anche i primi ad adottare ancora non sanno tutti i pro ei contro di WCF.

Altri suggerimenti

Hai provato a usare SoapUI ? Essi forniscono un davvero ottimo strumento Testing Web Services. Hanno anche una versione gratuita che verrà eseguito come webstart!

Inoltre, provare a installare un mex endpoint, c.f. MSDN collegamento.

Date un'occhiata a WebGetAttribute -. Che ha bisogno di .NET 3.5

Questo consente di ottenere i dati REST da un servizio Web WCF.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top