WCF接收大字符串,获得异常

时间:2013-03-20 15:23:55

标签: wcf web-services

我经历了关于这一切的所有帖子,没有任何帮助,所以我发布了这个因为我把头发拉出来。

我有一个WCF Web服务,它有一个接收字符串的方法,一个长字符串。它使用2,390,158个字符的字符串(尝试过它)但不能使用大约5,440,519个字符的字符串。 (我正在使用VS 2010)

我有这个错误:

  

System.ServiceModel.CommunicationException:接收HTTP响应http:// localhost:58014 / WSWebService.asmx时发生错误。原因可能是连接端点服务不使用HTTP协议。这也可能是由于服务器忽略了HTTP请求上下文(可能是由于服务中断)。

我将所有参数都放在int.MaxValue(2,147,483,647)中,但它仍然无效。任何帮助/建议都很高兴。

我删除了“超时”部分,但没有区别:

closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"

这是app.config中的绑定:

<bindings>
    <basicHttpBinding>
        <binding name="WSWebServiceSoap" maxReceivedMessageSize="20971520"
            messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
            useDefaultWebProxy="true">
                <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647"
                    maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
                <security mode="None">
                    <transport clientCredentialType="None" proxyCredentialType="None" realm="" />
                    <message clientCredentialType="UserName" algorithmSuite="Default" />
                </security>
            </binding>
      </basicHttpBinding>
</bindings>

我的配置服务器端是:

<system.serviceModel>
  <bindings>
    <basicHttpBinding>
      <binding name="WSWebServiceSoap" maxReceivedMessageSize="20971520"
       messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
       maxBufferSize="20971520" maxBufferPoolSize="20971520"
       useDefaultWebProxy="true">
        <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647"
        maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
        <security mode="None">
          <transport clientCredentialType="None" proxyCredentialType="None"
            realm="" />
          <message clientCredentialType="UserName" algorithmSuite="Default" />
        </security>
      </binding>
    </basicHttpBinding>
  </bindings>
</system.serviceModel>

是的,相同的配置。我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

服务是基于ASMX的,重做纯粹的WCF,现在它可以工作。