0

我有一个旧的 .NET 2.0 应用程序连接到asmx web service. 我需要调试 Web 服务,但是当我在本地运行它时,我总是收到400 - Bad Request response. Web 服务的跟踪给了我更多的细节——抛出的异常是Root element is missing. 然后我尝试用 Fiddler 捕捉流量 - 但显然即使应用程序强制代理到 localhost:8888,它也无法捕捉到它。所以我使用这里的想法来记录肥皂消息。但结果令人惊讶 - 为这项服务记录的肥皂消息是空白的。对于其他 Web 服务,此方法有效。

有什么想法可能导致这种行为,或者我该如何追踪它?我现在唯一的想法是用 WireShark 确认肥皂消息是空白的......

4

2 回答 2

0

您收到400 - Bad Request错误是因为无法解析请求。它无法解析,因为它是一条空消息,因此Root element is missing当 XML 解析器想要读取您的消息时会发生错误。验证您发送到服务的消息不为空。

于 2013-04-03T12:08:43.730 回答
0

今天我有时间再看一下这个问题,我发现了一些有趣的东西。在 Web 服务的 web.config 文件中,声明了 Web 服务使用的目录的路径,但其中一个路径不存在。返回400 bad request response的方法没有使用它,但是在将目录路径修复到存在的那个之后,bad request 问题就消失了。感谢您对此的帮助!

于 2013-04-18T16:38:33.777 回答