2011-09-15 78 views
0

對象我有一個需要通過SOAP爲基於Java的系統交互的.NET Web應用程序。Web服務/ WCF新手:創建WCF代理客戶端/對基於Java的SOAP Web服務

我沒有比一些基本的WCF其他Web服務的工作,並希望有這方面的指導。

基本上,我在想創建一個WCF代理客戶端連接到SOAP Web服務。該系統是提供SOAP接口的第三方基於Java的系統。

示例代碼只要使用WSDL生成代理,但不是WCF的次前?

UsernameToken aToken = new UsernameToken("root", "root", PasswordOption.SendPlainText); 

MetadataService.MetadataService aMetadataService = new MetadataService.MetadataService(); 

SoapContext aContext = aMetadataService.RequestSoapContext; 

aContext.Security.Tokens.Add(aToken); 

String aXmp = aMetadataService.s_getXmpFromRecordID(wAssetId.Text); 

有什麼建議嗎? 謝謝!

回答

2

的WSDL是所有你需要生成Web服務的客戶端代理。不,這不是在WCF的時代之前。 WSDL是專門爲此目的而設計的。

最簡單的解決方案是使用svcutil來創建代碼。

您可以使用Web服務的WSDL調用svcutil,並返回客戶端代碼以及其配置。

然後,您將Web服務的操作稱爲客戶端實例上的方法。就這麼簡單!

例如,讓我們考慮一個像這樣的基本Web服務:http://www.startvbdotnet.com/web/sample2.asmx(這是我通過谷歌搜索發現的作爲Web服務的基本數學公式)。

要生成該客戶端我會使用SvcUtil工具,像這樣:

svcutil http://www.startvbdotnet.com/web/sample2.asmx?wsdl 

該命令將產生Sample.csoutput.config文件(代碼和配置客戶端)。

你到你的項目中添加這些(連同像System.ServiceModelSystem.Runtime.Serialization需要的組件),現在你可以像這樣的代碼中調用Web服務:

using (SampleSoapClient proxy = new SampleSoapClient()) 
{ 
    Console.WriteLine(proxy.Add(6, 2)); 
    Console.WriteLine(proxy.Substract(6, 2)); 
    Console.WriteLine(proxy.Divide(6, 2)); 
    Console.WriteLine(proxy.Multiply(6, 2)); 
} 

WCF使事情變得簡單。在服務類中使用適當的配置或屬性,增加安全性也很簡單。