gpt4 book ai didi

c# - 如何调试/跟踪 System.Web.Services.Protocols.SoapHttpClientProtocol.invoke(来自 Windows 移动设备)?

转载 作者:太空狗 更新时间:2023-10-29 17:45:47 26 4
gpt4 key购买 nike

我正在尝试从 C# 应用程序调用 Web 服务,但出现异常:

InvalidOperationException 
client found response content type of 'text/html; charset=utf-8', but expected 'text/xml'

如何在 URL 中查看请求和响应消息?我的服务在桌面上运行,但客户端在 Windows Mobile CE 6.x 上运行,移动设备使用 USB 连接到桌面。可能这就是为什么我在 Wireshark 或 Fiddler 中看不到 HTTP 流量的原因(我都试过了)。该服务有效 - 我可以使用 Postman 检查它(方法返回正确且有意义的结果 XML)。

最佳答案

您可以在一些内部进行 HTTP 调用的库上打开调试(在我的例子中,它们是 HTTPS,因此无法通过 wireshark 检查)。

你应该添加到你的app.config:

<system.diagnostics>
<trace autoflush="true"/>
<sources>
<source name="System.Net" tracemode="protocolonly" maxdatasize="1024">
<listeners>
<add name="TraceFile"/>
</listeners>
</source>
</sources>
<sharedListeners>
<add name="TraceFile" type="System.Diagnostics.TextWriterTraceListener"
initializeData="trace.log"/>
</sharedListeners>
<switches>
<add name="System.Net" value="Verbose"/>
</switches>
</system.diagnostics>

这将在您的 exe 运行位置添加一个 trace.log。如果您不知道您的服务在哪里运行,您应该能够放置一个非相对路径。

此外,这会在 Visual Studio 中的输出窗口(而不是输出控制台)中运行代码时添加相同的日志。

P.S.:如果您只需要请求和响应的 header 以及有关打开和关闭连接的信息,则可以将日志级别更改为“信息”。

关于c# - 如何调试/跟踪 System.Web.Services.Protocols.SoapHttpClientProtocol.invoke(来自 Windows 移动设备)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40588819/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com