2012-01-16 92 views
0

我想在VS.NET 2010界面中添加一個SOAP Web服務,但是我得知服務器拒絕了連接。負責服務的人告訴我它正在工作。我問他們是否有一個wsdl文件,但據說他們沒有。添加SOAP Web服務參考

問題是由於他們缺乏wsdl引起的,還是我可以認爲我身邊存在問題?

+0

我會更加努力地追逐它們,好像它們已經開發了一個用於消費的Web服務,然後它們將擁有一個WSDL。這並不意味着它通過網址公開可用,但他們應該能夠爲您提供一個,即使他們通過電子郵件發送給您。如果他們甚至不能這樣做,我會擔心。 – aqwert

回答

0

看起來他們的服務沒有公開元數據。嘗試並瀏覽到wsdl網址,看看你是否收回任何東西。 http://server/blah/blah?wsdl

+0

做到了。不可達。謝謝。 –

+0

夠公平的。他們必須爲您提供wsdl文件或URL,從中可以檢索到該文件或URL,否則您將無法通過添加服務引用(或Web引用)來創建服務代理。如果您有示例請求和響應,則可以手動創建服務客戶端,但如果請求和響應非常複雜,則不容易。我肯定會推動wsdl。希望我的回答有幫助。 –

+0

這是不正確的。您不需要元數據來創建代理。你可以使用'ChannelFactory'快速創建代理,這確實很容易。看我的例子。 –

1

如果他們不願意在服務上公開他們的服務元數據,那麼看看他們是否會讓您訪問包含服務合約,操作和數據合約的程序集。然後,您可以創建代理服務而不需要任何元數據。

// Create service proxy on the fly 
var factory = new ChannelFactory<IMyServiceContract>("NameOfMyClientEndpointInConfigFile"); 
var proxy = factory.CreateChannel(); 

// Create data contract 
var requestDataContract = new MyDataContract(); 

// Call service operation. 
var responseDataContract = proxy.MyServiceOperation(requestDataContract); 

它還可以幫助如果你有機會到服務端配置文件,這樣你就可以離開這裏的端點詳細信息複製到您的客戶端配置。