首页 > 解决方案 > 如何修复 ASP.NET Core 中的 WrongInputException?

问题描述

我想使用另一个团队准备的 SOAP Web 服务,在我在 ASP.NET Core 中准备的新 REST API 内部使用。我的 Web 服务客户端代码是使用WCF Web Service Reference Provider Tool 搭建的。我根据团队的命名约定清理了代码(例如,我更改了属性和方法名称)。

当我通过新的 REST API 发送请求时,我收到了WrongInputException. 我检查了示例请求中的所有参数,它们都在我的 C# 代码使用脚手架客户端中的同一个位置。

我不知道我的新 REST API 究竟发送了什么消息。

标签: asp.net-corewcfexceptionwebservice-client

解决方案


就我而言,所描述行为的主要原因WrongInputException过早重构我在不知道后果的情况下更改了 Web 服务客户端中的属性名称。

例如,如果请求正文中的元素是objectRefNum,那么我不能简单地更改脚手架服务引用类中的相关属性,因为 - 无需额外配置 - 该名称会以相同的字母大小写复制到 SOAP 信封的请求正文中。SOAP 信封应该以区分大小写的方式编码。

为了在 ASP.NET Core 中跟踪我的新 REST API 发送的原始请求正文,我遵循了这个优秀答案中的说明。

(注意,顺便说一句,这种错误(应用不适当的字母大小写)可以由 IDE 处理,至少作为警告,但事实并非如此,所以:即使我们有单元测试,我们在进行重构时也需要小心覆盖所有路径,即使我们使用 IDE 支持的语义重命名。)


推荐阅读