C# 创建简单的WebService发布本地和调用方法及环境配置(VS2017)

说明:由于工作的缘故,写MES时遇到了Web的服务接口,想着深入了解web的运作和接口文档文件的生成和调用方法,故写此文章,以备不时之需,共勉。

创建Web参考:C#创建Web参考来源

IIS设置参考:IIS的设置参考来源1IIS设置来源参考2

错误解决方法参考:下面出现错误的解决方法

一、创建简单的Web

1、创建web项目

若没有该项目可选,则重新修改VS2017,安装关于web开发的环境。

项目模板选择空即可,确认创建。

右击项目,添加-新建项

2、添加web服务项

这部分是默认生成的代码,我们可以在下面添加自己的接口。

3、启动项目

出现下面的界面,证明已经可以了,若是没有出现,可先看第三部分IIS管理器配置

调用接口,打印输出内容

二、发布接口到本地

1、右击项目,选择发布

将接口发布到本地文件夹

发布成功后会出现这些文件

三、IIS管理器设置

不配置IIS管理器,会导致打不开刚刚那个接口网页,我在网上找到了配置的方法。

1、打开控制面板-程序-启用或关闭window功能

2、把这些功能都启用

3、打开管理工具,找到IIS管理器,可以右击该管理器发生到桌面快捷方式。

4、打开目录浏览功能,并启用

5、配置编辑器

找到该配置路径,并把该属性改成true

四、IIS管理器添加web网站

1、在IIS界面右侧,右击网络-添加网站

按照下面图片上的说明添加刚刚的web接口到网站上

2、浏览网页内容,测试接口是否部署成功

结果发生了意外,应该是我把程序的文件夹 放在了C盘桌面,故出现权限无法访问配置文件的情况,网上的说法也是这样。

解决方法

按照网上的方法,解决了这个问题,点击浏览

五、调用web接口

调用的方式有两种,一种是用客户提供的WSDL文件进行引用(离线),一种是直接引用URL(这种好像是要连他们的内网才行),我们测试的时候用的是发布在本地文件夹的接口,所以两种都可以。

第六部分有URL生成WSDL文件的方法。

1、通过URL来直接引用

随便打开一个测试项目,右击-引用-添加服务引用

添加引用之后,我们直接通过web引用名,把web接口的类和方法调用。

做了给按钮,直接弹窗显示接口返回的结果。

2、通过WSDL文件调用引用

先通过第六步把WSDL文件下载保存到谋一路径。

我就把wsdl文件生成在D盘

然后在这个添加引用的界面,把这个文件的路径填上去就可以了。

然后右边项目就有了两个服务引用了

一样的调用方法,只是添加的引用来源不太一样。

六、将web接口生成WSDL文件

得知web地址来生成保存关于接口说明的WSDL文件,下面是示例代码。

  string Url = "http://192.168.1.101:85/WebService1.asmx";//web地址
  string savePath = @"D:\cyb\3-DEMO_CYB\11-Web\WebApplication1\WebApplication1\bin\Publish\";//WSDL文件的输出路径
  string FileName = "TestWeb.wsdl";//输出的WSDL文件名
  WebClient Web = new WebClient();
  if (!Directory.Exists(savePath))
  {
      Directory.CreateDirectory(savePath);//不存在就创建文件夹
  }
  Web.DownloadFile($"{Url}?wsdl", savePath + FileName);

用WSDL文件主要是模拟客户给的WSDL文件的情况,因为有了wsdl文件我们可以离线引用web接口。

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
完整的服务端及客户端调用程序,在win7+ vs2015环境运行通过. 一、说明 1、创建winfrom应用程序;(或者是控制台项目) 2、在项目中添加一个WCF服务,并实现服务; 3、在需要启动WebService服务的地方启动该服务即可; 二、代码如下: 1、新建一个WCF服务——定义服务接口    [ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")]     public interface ICalculator     {         [OperationContract]         double Add(double n1, double n2);     } 2、新建一个WCF服务——实现服务 public class CalculatorService : ICalculator     {         public double Add(double n1, double n2)         {             return n1 + n2;         }     } 3、添加完WcF服务后会在应用程序配置文件中有入下节点                             <!--TestServer.ICalculator服务定义的接口,根据自己定义进行修改-->                                                                   <baseAddresses> <!--这个是要发布服务地址,可以进行修改-->                                   </baseAddresses>                   4、在要启动服务的地方启动服务监听   public frmMain() { InitializeComponent(); } private void frmMain_Load(object sender, EventArgs e) { try { //打开服务创建监听,并开始监听消息 ServiceHost serviceHost = new ServiceHost(typeof(Service1));//需要using System.ServiceModel; serviceHost.Open(); label1.Text = "服务启动正常"; } catch (Exception ex) { label1.Text = ex.Message; } } 5、下面可以在客户端通过上面的服务地址”http://xxx.xxx.xxx.xx:8733/test/Service1/“对服务进行调用 到这步就实现在控制台中实现webService发布
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三目条件

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值