WCF 中,出现The remote server returned an unexpected response: (400) Bad Request.

本文探讨了WCF服务中出现400错误的原因,详细分析了服务器端和客户端的配置,包括wsDualHttpBinding和basicHttpBinding的设置。通过具体的代码示例,指出在数据量过大时,发送操作会触发远程服务器返回400错误,并寻求解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

服务器端配置

<bindings>

      <wsDualHttpBinding>
        <binding name="SubscribeBindingConfig" receiveTimeout="23:59:59" messageEncoding="Text"
          bypassProxyOnLocal="true" useDefaultWebProxy="false" maxBufferPoolSize="4000000" maxReceivedMessageSize="4000000" >
          <reliableSession inactivityTimeout="23:59:59" />
          <readerQuotas maxDepth="64" maxStringContentLength="16384" maxArrayLength="16384"
                        maxBytesPerRead="8192" maxNameTableCharCount="16384" />
        </binding>
      </wsDualHttpBinding>

    </bindings>

 

客户端配置:

  <bindings>
            <basicHttpBinding>
                <binding name="BasicHttpBinding_IPublishService" closeTimeout="00:01:00"
                    openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                    allowCookies="false" bypassProxyOnLocal="true" useDefaultWebProxy="false" hostNameComparisonMode="StrongWildcard"
                    maxBufferSize="171072" maxBufferPoolSize="1524288" maxReceivedMessageSize="171072"
                    messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered">
                    <readerQuotas maxDepth="64" maxStringContentLength="16384" maxArrayLength="16384"
                        maxBytesPerRead="8192" maxNameTableCharCount="16384" />                    
                    <security mode="None">
                        <transport clientCredentialType="None" proxyCredentialType="None"
                            realm="" />
                        <message clientCredentialType="UserName" algorithmSuite="Default" />
                    </security>
                </binding>
            </basicHttpBinding>
        </bindings>
        <client>
          <endpoint address="http://localhost:8734/Design_Time_Addresses/MessageBroker.Framework/PublishService/"
                binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IPublishService"
                contract="IPublishService" name="BasicHttpBinding_IPublishService" />

        </client>

 

客户端代码:

PublishServiceClient client = new PublishServiceClient();
            
            MessageDoc doc = new MessageDoc();
            doc.SendSubject = TxSubject.Text.Trim();
            doc.Add("MachineName", Environment.MachineName);
            ..............

            client.Send(doc);      

 

如果上述中的Add 的数据量大,Send就会报告The remote server returned an unexpected response: (400) Bad Request.

不知道什么原因,各种绑定参数都做过改动,都无济于事。

请高手帮忙!

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值