Pergunta
Alguém sabe de uma boa ferramenta para gerar o WSDL para um contrato de serviço escrito em C # (ou seja, conjunto de métodos que são marcadas como "[OperationContract]" usando WCF)? Todas as ferramentas que eu encontrei trabalho o contrário: criar recibos de código de um WSDL. Eu não quero ter que mão-jam um arquivo WSDL. Eu encontrei ferramentas para php e J2EE, mas não C #. Obrigado!
Solução
A coisa mais fácil a fazer é hospedar o serviço com uma configuração de endereço de base, e depois é só bater-lo a partir de um navegador com "? Wsdl" acrescentado ao final.
Aqui está um exemplo de uma configuração de serviços com um endereço base especificado. Note que este vai no elemento <configuration><services>
na sua configuração:
<service name="MyServiceName" behaviorConfiguration="MyServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:9000/MyService"/>
</baseAddresses>
</host>
<endpoint address="net.tcp://localhost:9001/MyService"
binding="netTcpBinding"
contract="IMyService"
bindingConfiguration="MyServiceBinding"/>
</service>
Uma vez que você obtê-lo hospedado, basta ir ao http://localhost:9000/MyService?wsdl
para ver a definição WSDL.
Outras dicas
svcutil ou apenas hospedá-lo rapidamente e atingiu o ponto MEX :)
Duas maneiras:
a) Baixar arquivo WSDL e fazer os passos abaixo :
i) Abrir comando visual studio prompt de como um administrador.
ii) Tipo de comando abaixo:
wsdl.exe [caminho para o arquivo WSDL]
b) Com endpoint :
i) Abrir comando do Visual Studio prompt de como um administrador.
ii) Tipo de comando abaixo: wsdl.exe http: // localhost: 9000 / MyService