如何修复 ASP.NET Core中的WrongInputException?

How to fix WrongInputException in ASP.NET Core?

提问人:Gerard Jaryczewski 提问时间:12/29/2020 更新时间:12/29/2020 访问量:53

问:

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

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

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

asp.net-core WCF 异常 webservice-client

评论


答:

0赞 Gerard Jaryczewski 12/29/2020 #1

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

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

为了跟踪我在 ASP.NET Core 中的新 REST API 发送的原始请求正文,我按照这个出色答案中的说明进行操作。

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