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

发布于 2024-07-30 11:09:58 字数 228 浏览 2 评论 0原文

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

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

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

感谢您的帮助!

-史蒂夫

I'm trying to utilize a web service through C#.
In the web service documentation it states that the web service only accepts requests as a single packet/stream and not multiple packets.

Does anyone know how to change this setting when accessing the web service through a web reference in Visual Studio?

I am getting a SOAPException "Unable to parse the incoming request" error when I send a request and I assume this is why.

Thanks for your help!

-Steve

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

北笙凉宸 2024-08-06 11:09:58

这不会是微不足道的,但也不会太困难(假设您已经正确识别了问题)。 请参阅自定义 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 标志。

This won't be trivial, but it won't be too difficult, either (assuming you've correctly identified the problem). See Ways to Customize your ASMX Client Proxy. In the "Heavy Duty Customization" section, you'll see how to override the GetWebRequest method of your proxy class by using a partial class. Assuming that your web reference name is "Service1Proxy":

public partial class Service1Proxy 
{
    protected override WebRequest GetWebRequest(Uri uri)
    {
        HttpWebRequest request = (HttpWebRequest) base.GetWebRequest(uri);
        request.SendChunked = false;
        return request;
    }
}

I recommend you try this, but I also recommend you set a breakpoint after the call to the base GetWebRequest method. Check to see if the original request had the SendChunked flag set or cleared.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文