c#程序添加其他網站的webservice引用。


前言

有A網站,B網站兩個網站獨立運行。某一天,需要兩個網站進行合作來完成一件事,比如用A網站接收一些數據進行處理,存入中轉數據庫,B網站定時去取數據進入自己的系統進行處理。

可能我們會先想到在B網站做一個功能,定時去數據庫取。但是如果我沒有B網站的源代碼只有開發文檔呢。這時候可以用一個簡單的winform程序來做。然而從中轉數據庫取數據容易,存到B網站自己的數據庫難。為什么呢,因為數據要經過B網站的一些方法處理。這個時候,就用到了在winform程序中引用webservice的情景。

 

首先,vs2013創建一個winform程序。添加最基本的控件。一個button用來觸發事件,一個label用來顯示事件結果。

在解決方案資源管理器上點擊右鍵,選擇添加服務引用。

彈出框中,填寫你要引入的服務。這里拿網上的一個天氣預報的服務作實驗。地址:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx,點擊轉到

如果服務地址正確,能找到服務,會彈出下面的框

命名空間可以隨意命名,點擊確定,可以看到我們的資源面板變成了這樣子。

這個服務有什么方法呢。如果是你自己的服務,那么你肯定知道,如果是公共服務,可以在瀏覽器輸入服務地址,看一下有哪些方法:

 

嗯。好了,就用它了。進入程序測試。

        private void button1_Click(object sender, EventArgs e)
        {
            WeatherServiceTest.WeatherWebServiceSoapClient client=new WeatherServiceTest.WeatherWebServiceSoapClient();
            string[] province = client.getSupportProvince();
            for (int i = 0; i < province.Length;i++ )
            {
                this.label1.Text += "\n" + province[i];
            }
        }

  

執行!點擊button,結果報錯如下:

可以清楚地看到,多個終點配置。打開app.config

可以清楚地看到,確實有兩個終點配置。我們需要刪除一個。那么這里刪除哪一個呢。我們看到,這里程序默認給生成了兩個binding,兩個對應的endpoint。一個是basic基本的,一個是custom自定義的。然后我們可以看到,兩個終點配置其實就是soap的協議不一樣而已。其實刪除哪一個都可以,這里我們保留basic,刪除custom。(custom的binding可刪可不刪。為了保持整潔,沒有多余的干擾項,我們也刪除了)。刪除后如下:

再次運行。

成功!!!

 

提醒:在一個應用中可以添加多個服務引用,但是每次添加的時候會相應添加兩個binding和對應的endpoint,去掉其中一個即可。其他的和上述一樣。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM