如何通过Web服务代理发送请求作为单个数据包(不要块)

时间:2009-08-10 20:33:08

标签: c# visual-studio web-services proxy packets

我正在尝试通过C#使用Web服务。 在Web服务文档中,它声明Web服务仅接受作为单个数据包/流而不是多个数据包的请求。

在Visual Studio中通过Web引用访问Web服务时,是否有人知道如何更改此设置?

当我发送请求时,我收到SOAPException“无法解析传入请求”错误,我认为这就是原因。

感谢您的帮助!

-Steve

1 个答案:

答案 0 :(得分:0)

这不会是微不足道的,但也不会太困难(假设您已正确识别问题)。见Ways to Customize your ASMX Client Proxy。在“重型自定义”部分中,您将了解如何使用部分类覆盖代理类的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标志。