我正在尝试通过 C# 使用 Web 服务。在 Web 服务文档中,它声明 Web 服务仅接受作为单个数据包/流而不是多个数据包的请求。
有谁知道通过 Visual Studio 中的 Web 引用访问 Web 服务时如何更改此设置?
我在发送请求时收到 SOAPException“无法解析传入请求”错误,我认为这就是原因。
谢谢你的帮助!
-史蒂夫
我正在尝试通过 C# 使用 Web 服务。在 Web 服务文档中,它声明 Web 服务仅接受作为单个数据包/流而不是多个数据包的请求。
有谁知道通过 Visual Studio 中的 Web 引用访问 Web 服务时如何更改此设置?
我在发送请求时收到 SOAPException“无法解析传入请求”错误,我认为这就是原因。
谢谢你的帮助!
-史蒂夫
这不会是微不足道的,但也不会太难(假设您已经正确识别了问题)。请参阅自定义 ASMX 客户端代理的方法。在“重型定制”部分,您将看到如何GetWebRequest
使用部分类来覆盖代理类的方法。假设您的 Web 参考名称是“Service1Proxy”:
public partial class Service1Proxy
{
protected override WebRequest GetWebRequest(Uri uri)
{
HttpWebRequest request = (HttpWebRequest) base.GetWebRequest(uri);
request.SendChunked = false;
return request;
}
}
我建议你试试这个,但我也建议你在调用基本GetWebRequest
方法之后设置一个断点。检查原始请求是否SendChunked
设置或清除了标志。