2009-08-03 173 views
12

web服務這也許是一個非常簡單的問題,但我無法找到一個答案:生成從WSDL

對於客戶端,我需要HOST一個web服務。客戶端發給我一個wsdl文件,web服務應該'執行'。我該如何解決這個問題?我已經生成了任意數量的客戶端 - 惡意軟件,但這是相反的。我可以同時使用ASP.NET 2.0 webservices或Windows Communication Foundation。

+0

爲現有的類生成WSDL =「自下而上的策略」與現有的WSDL =「自上而下的策略」(Wikipedia)生成類骨架 – JohnB 2012-08-10 00:47:21

回答

15

wsdl.exe /server

生成一個抽象類,基於合同的XML Web服務。 默認爲生成客戶端 代理類。當使用 /參數選項時,該值是包含 「服務器」的 元素。

你可以做svcutil.exe的類似的事情WCF-類似:

svcutil.exe的thewsdl.wsdl /語言:C#/out:ITheInterface.cs(我沒有測試這個) 。

編輯 - 約翰桑德斯在他的回答中贊成WCF方法的好處 - 我也推薦這一點。

+0

真的那麼簡單嗎?我已經多次使用過wsdl.exe,但不知道/ server開關。我會測試並報告 – edosoft 2009-08-03 08:05:46

+1

Yeap。 WSDL第一次開發是一種有效的方法 - 請參閱本文:http://blogs.msdn.com/dotnetinterop/archive/2008/09/24/wsdl-first-development-with-wcf.aspx – RichardOD 2009-08-03 08:09:35

0

您可以使用WSDL工具從微軟到生成服務器的接口和實現這些

這裏是WSDL實用的簡短說明。

Wsdl.exe用 - 實用程序生成的XML Web服務客戶端代碼和XML Web使用ASP.NET從WSDL文件合同,XSD架構 服務 和.discomap 發現文件。該工具可以與disco.exe一起使用。

2

你可以用這個WSDL(wissd'le)文件做很多事情。

從手工做的WS類使用自動生成的類從Wsdl.exe用

咱們想象爲你的榜樣,你有,這WDSL(從WebServiceX.Net tooked)


創建一個C#自動生成的代理您轉到您的命令提示符並編寫:

wsdl /language:cs /protocol:soap /out:C:\myProxyScripts http://www.webservicex.net/TranslateService.asmx?wsdl 

注意:\ Program Files文件\微軟的SDK \的Windows \ V6.1 \ Bin文件夾,你會發現WSDL:你的C內。EXE或只是做一個DIR/S的內部C:\ Program Files文件\

如果你想Visual Basic中,只是用/語言:VB/L:VB

/語言: 用於生成的代理類的語言。選擇'CS', 'VB','JS','VJS','CPP'或爲實現System.CodeDom.Compiler.CodeDomProvider的類提供完全限定的名稱。

默認 語言爲'CS'(CSharp)。簡寫形式是'/ l:'。

這個命令會把你的C:\ myProxyScripts放到自動生成的代理中。如果你使用計算機的WSDL文件,只需網址更改爲完整路徑,例如

wsdl /language:cs /protocol:soap /out:C:\myProxyScripts C:\myProxyScripts\myWsdlFile.wsdl 

你生成的代理將被稱爲服務名稱,您在我們的示例中指定的那個:

<wsdl:service name="TranslateService"> 

我希望這可以幫助你,理解WSDL,自動生成的代理,並且你現在可以管理你的一切,以滿足你的客戶的願望。

14

實際上,您應該使用svcutil.exe而不是wsdl.exe來做到這一點。 WSDL.EXE是Microsoft現在認爲是「遺留」代碼的ASMX Web服務技術的一部分,該代碼不會修正錯誤。