场景
对接第三方系统提供接口文档中显示为asmx接口
访问接口返回数据格式为
xml中的数据格式为json数据。
需要在本地新建并模拟调试环境。
注:
博客:
霸道流氓气质的博客_CSDN博客-C#,架构之路,SpringBoot领域博主
实现
1、WebService
WebService是一种远程调用技术,也叫XML Web Service WebService,
是一种可以接收从Internet或者Internet上的其他系统中传递过来的请求,轻量级的独立的通信技术。
是通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。
asmx
.asmx是webservice服务程序的后缀名,ASP.NET 使用.asmx 文件来对Web Services的支持。
.asmx 文件和.aspx文件一样都属于文本文件。它包含在.aspx文件之中,成为ASP.NET应用程序的一部分。
asmx 是WEB服务文件,asmx.cs里有相关代码,属于B/S形式,用SOAP方式HTTP访问,
用XML返回可以返回基础类型和PUBLIC结构类型。
官网文档:
使用 ASP.NET Web 服务 (ASMX) - Xamarin | Microsoft Learn
使用 ASP.NET Web 服务 (ASMX)
ASMX 提供使用简单对象访问协议 (SOAP) 来生成发送消息的 Web 服务的功能。
SOAP 是一种独立于平台且独立于语言的协议,用于生成和访问 Web 服务。
ASMX 服务的使用者不需要知道用于实现该服务的平台、对象模型或编程语言的任何内容。
他们只需要了解如何发送和接收 SOAP 消息。
官网提供示例代码下载:
Xamarin.Forms - TodoASMX - Code Samples | Microsoft Learn
GitHub - xamarin/xamarin-forms-samples: Sample apps built using the Xamarin.Forms framework
2、VS2019-新建项目
模板选择ASP.NET Web 应用程序
然后选择空的项目模板
右击工程-添加-新建项目-Web 服务(ASMX)
新建成功之后
会自动生成一个测试服务HelloWorld并返回执行字符串。
2、运行web服务并测试
点击VS上方IIS Express 会在默认浏览器中访问
点击HelloWorld,返回格式如下
需要模拟对接接口的返回结果,将Hello World字符串改为json数据接口,注意json字符串转义。
修改之后重新运行查看
3、通过IIS发布WebService服务
VS中右击工程-发布-目标文件夹--浏览选择文件夹位置-注意选择在发布前删除所有现有文件,点击发布按钮发布。
4、IIS部署网站
WebService怎样在IIS上部署:
WebService怎样在IIS上部署_iis怎么部署webservice_霸道流氓气质的博客-CSDN博客
参考以上流程,注意配置打开目录浏览和配置文件夹权限。
可直接在IIS中点击浏览网站打开浏览地址。
5、WebServices远程访问提示,测试窗口只能来自本地计算机的请求。
以上服务在本地访问可以,在另一台电脑上远程访问时提示如上。
需要修改开启远程访问
在web.config的<system.web></system.web>中间加入如下配置节内容
<webServices>
<protocols>
<add name="HttpSoap"/>
<add name="HttpPost"/>
<add name="HttpGet"/>
<add name="Documentation"/>
</protocols>
</webServices>
然后重新发布即可。
6、下载上面官方提供的示例代码
打开xamarin-forms-samples\WebServices\TodoASMX\TodoASMX下的解决方案。
将TodoASMXService设置启动项目并启动
启动效果