1.首先
- 我想将 SOAP 通信服务从用 Java/Axsis2 实现的遗留系统迁移到 C#
- 我想将 SOAP 通信服务发布到 IIS 并使用 Soap UI 检查客户端的操作
- 使用 .NET Framework 中包含的 ASP.NET asmx 提高开发效率
- .NETX 不包含 SOAP 通信工具
二、开发环境
- Visual Studio 2022
- .NET 框架 4.8
- IIS 8
- 肥皂用户界面 5.7
3. 创建一个 ASP.NET 项目
3.1. 在 Visual Studio 中新建项目
-
选择“ASP.NET Web 应用程序(.NET 框架)”
-
如果未安装 ASP.NET 服务,请将其与 Visual Struio 安装程序分开安装
-
框架选择“.NET Framework 4.8”
3.2. 添加ASMX文件
-
添加新项目并添加“Web Service (ASMX)”
-
该示例描述了“HelloWorld”服务
3.3. 启动示例服务
-
单击“运行”按钮启动 Web 浏览器
-
单击屏幕顶部的“HelloWorld”链接,查看如何调用 SOAP
-
单击屏幕顶部的“开始按钮”时,会显示 SOAP 调用结果。
4.修改SOAP通信服务参数
- 添加可以使用 SOPA 发送和接收参数的搜索服务
[WebMethod]
public ParameterDto Search(ParameterDto inParameter)
{
var outParameter = new ParameterDto
{
id = inParameter.id,
outputDto = new OutputDto
{
output1 = inParameter.outputDto.output1,
output2 = inParameter.outputDto.output2
}
};
return outParameter;
}
- 为参数添加自定义 DTO 类
namespace WebApplication1
{
public sealed class ParameterDto
{
public int id { get; set; }
public OutputDto outputDto { get; set; }
}
}
- 在参数中添加嵌套的自定义 DTO 类
namespace WebApplication1
{
public sealed class OutputDto
{
public string output1 { get; set; }
public string output2 { get; set; }
}
}
5. 使用 Soap UI 进行操作检查
5.1. 下载 Soap UI
5.2. 安装 Soap UI
- 运行下载的安装文件
5.3. 创建一个新的 SOAP 项目
-
单击文件 > 新建 SOAP 项目
-
输入“项目名称(任意)”和“初始 WSDL”,然后单击确定按钮。
WSDL 是https://localhost:44308/指定 [ASMX 文件名] ?WSDL"
- 发出 SOAP 调用请求
5.4. 运行 SOAP 项目
输入 SOAP 项目的请求值
点击屏幕左上角的执行图标,返回屏幕右侧的Response
5.5. 发生运行时错误时
- 如果您收到以下错误,您可以通过打开/关闭代理来解决它。
org.apache.xmlbeans.XmlException:org.apache.xmlbeans.XmlException:错误:实体“副本”被引用,但未声明
6.发布服务到IIS服务器
6.1.修改ASMX文件
- 将命名空间更改为固定 URL
6.2. 发布服务(本地端)
右键单击类视图中的服务,然后单击发布
这次选择一个文件夹,在本地创建一个文件,然后手动上传到服务器。
指定任何输出目的地
点击“发布”按钮
公共服务就地输出
6.3. 发布服务(服务器端)
安装 IIS 所需的平台(可选)
我能够通过将本地包文件复制到 IIS 服务器来发布
7. 源代码
8. 参考文献
原创声明:本文系作者授权爱码网发表,未经许可,不得转载;
原文地址:https://www.likecs.com/show-308626758.html