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,点击转到

如果服务地址正确,能找到服务,会弹出下面的框

命名空间可以随意命名,点击确定,可以看到我们的资源面板变成了这样子。

这个服务有什么方法呢。如果是你自己的服务,那么你肯定知道,如果是公共服务,可以在浏览器输入服务地址,看一下有哪些方法:

 

嗯。好了,就用它了。进入程序测试。

1
2
3
4
5
6
7
8
9
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,去掉其中一个即可。其他的和上述一样。

posted @   吃馒头的火鸡  阅读(15516)  评论(0)    收藏  举报
编辑推荐:
· 编码之道,道心破碎。
· 记一次 .NET 某发证机系统 崩溃分析
· 微服务架构学习与思考:SOA架构与微服务架构对比分析
· tomcat为什么假死了
· 聊一聊 Linux 上对函数进行 hook 的两种方式
阅读排行:
· 一周 Star 破万的开源项目「GitHub 热点速览」
· 编码之道,道心破碎。
· 千万级大表,如何做性能调优?
· 不写代码,让 AI 生成手机 APP!保姆级教程
· 知名开源项目Alist被收购!惹程序员众怒,开团炮轰甲方
点击右上角即可分享
微信分享提示