Pergunta

Eu estou trabalhando com o WCF (VS2005, .Net 3.0) e quiser testar um serviço chamando-o diretamente através de um navegador web, em vez da partir do código.

Eu tenho um método decorado com a chamada atributo OperationContract GetTest (). Eu tenho o serviço atrás de um arquivo .svc que eu possa acessar; no entanto, quando eu vou ... / Test.svc / GetTest, apenas uma tela em branco aparece.

Aqui está o 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>

Sempre que eu tentar definir um ponto de interrupção no serviço, não ser atingido também. Todas as ideias sobre onde estou indo errado aqui? Estou acostumado a serviços ASMX onde eu recebo uma resposta quando eu acessar os métodos através de um navegador; no entanto, só posso obter o "Você criou um serviço" página quando eu acessar o serviço, mas nada dos métodos.

Foi útil?

Solução

WCF não oferece a "chamá-lo a partir da web" opções que os serviços ASMX costumava fazer. Por quê? É uma falha de segurança enorme, e não a melhor maneira de testar um serviço Web.

Uma opção é fazer como @Yossi sugeriu, e usar a ferramenta de teste de serviço do WCF.

Ou melhor ainda, escrever seu próprio cliente para consumir o serviço web. Isso irá ajudá-lo a lidar com os mesmos problemas de quem vai consumir o seu serviço vai lidar com, e acredite, WCF podem ter muito poucos desses hangups.

Não me entenda errado, WCF é frikkin incrível! Mas há muito a fazer malabarismos, e se você é novo chances são que você está indo para obtê-lo errado. Mesmo early adopters ainda não sabem todos os prós e contras do WCF.

Outras dicas

Considere o uso do Wcf Serviço ferramenta de teste para o teste inicial de seu serviço (mas o teste de unidade realmente- é seu amigo :-)) (e sim - você vai precisar de um mex endpoint, pelo menos inicialmente)

Como para depuração - você está anexado ao processo correto que hospeda o serviço? você está compilado com símbolos de depuração? se o serviço é publicado para o IIS? - é o código publicado o mesmo que o código no visual studio

Você já tentou usar SoapUI ? Eles fornecem uma ferramenta realmente grande Serviços Testing Web. Eles ainda têm uma versão gratuita que será executado como um webstart!

Além disso, tente instalar um ponto de extremidade mex, CF. MSDN link.

Dê uma olhada WebGetAttribute -. Que precisa NET 3.5

Isto permite-lhe obter dados REST de um serviço WCF web.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top