2

我是新來的Windows 8 metro應用程序開發,請讓我幫忙解決這個問題。在Metro應用程序中使用Web服務?

我想在我的城域應用程序中使用web服務,但服務引用url是動態的。

我的應用程序,用戶將被給予一個規定,指定在一個文本框中的URL,所以我需要連接到該Web服務,這意味着服務參考URL將會改變。

直到現在,我以傳統方式連接到Web服務,例如通過添加服務引用和創建實例並使用該實例調用該Web服務中的所有方法來提供特定服務引用。

但是, 1)如果服務引用url正在改變,我應該如何使用web服務。 2)訪問該服務中的單個服務方法(通過傳遞一些參數作爲輸入來調用該方法)。

在此先感謝。

+0

做這項服務是某種形式的Web API的? – Fixus 2012-07-30 11:05:16

+0

不,它是我開發的用於在客戶端應用程序 – user1516781 2012-07-30 11:17:28

回答

1

如果你有不同的位置相同的服務簡單地將其添加「添加服務引用...」,並在服務客戶端構造函數添加指定的網址:

var svc = new DataServiceClient("BasicHttpBinding_DataService", 
    "http://url.com/DataService.svc"); 

BasicHttpBinding_DataService是你的(產生的)結合從客戶端配置域名(做時自動生成的 「添加新的Web引用...」):

ServiceReferences.ClientConfig

<configuration> 
    <system.serviceModel> 
     <bindings> 
      <basicHttpBinding> 
       <binding name="BasicHttpBinding_DataService" maxBufferSize="2147483647" 
        maxReceivedMessageSize="2147483647"> 
        <security mode="TransportWithMessageCredential" /> 
       </binding> 
      </basicHttpBinding> 
     </bindings> 
     <client> 
      <endpoint address="https://localhost:44300/Services/DataService.svc" 
       binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_DataService" 
       contract="DataService.DataService" name="BasicHttpBinding_DataService" /> 
     </client> 
    </system.serviceModel> 
</configuration> 

上面的代碼可用於更改地址(例如, https://localhost:44300/Services/DataService.svc)一個在運行時產生的...

而且看看這個:http://blog.rsuter.com/?p=281

+0

中使用的Web服務什麼是DataServiceClient和BasicHttpBinding_DataService?請解釋 – user1516781 2012-08-01 05:32:05

+0

我沒有相同的服務名稱,他們是不同的。 – user1516781 2012-08-01 05:40:43

+0

您是否對所有Web服務具有相同的WSDL(相同合同),只有位置(URL)不同? – 2012-08-01 10:48:29

相關問題