说明:由于工作的缘故,写MES时遇到了Web的服务接口,想着深入了解web的运作和接口文档文件的生成和调用方法,故写此文章,以备不时之需,共勉。
创建Web参考:C#创建Web参考来源
IIS设置参考:IIS的设置参考来源1、IIS设置来源参考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接口。