在以下方面需要帮助:“远程服务器返回了意外的响应:(400)错误的请求。”

|| 我有一个可以正常运行一段时间的WCF服务,因此我决定添加一些东西。所有旧的东西都可以正常工作,而新的东西可以用于从客户端到主机的较小传输。但是,当客户端尝试向主机发送大字符串时,它会显示为“(400)错误的请求”。主机无需进行任何更改,就可以毫无问题地将大小相同的项目发送给客户端。 我到过这里和其他站点四处逛逛,虽然我发现有人遇到同样的问题,但他们的解决方案(增加app.config的大小和长度)并未解决我的问题。 Web.config
<system.serviceModel>
    <behaviors>
        <serviceBehaviors>
            <behavior>
                <serviceMetadata httpGetEnabled=\"true\"/>
                <serviceDebug includeExceptionDetailInFaults=\"true\"/>
            </behavior>
            <behavior  name=\"Throttled\">
                <serviceThrottling
                    maxConcurrentCalls=\"1000\"
                    maxConcurrentSessions=\"1000\"
                    maxConcurrentInstances=\"1000\" />
                <serviceMetadata
                    httpGetEnabled=\"true\"
                    httpGetUrl=\"\" />
            </behavior>
        </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled=\"true\"/>
</system.serviceModel>
app.config
<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding name=\"BasicHttpBinding_IService\" closeTimeout=\"00:01:00\"
             openTimeout=\"00:01:00\" receiveTimeout=\"00:10:00\" sendTimeout=\"00:01:00\"
             allowCookies=\"false\" bypassProxyOnLocal=\"false\" hostNameComparisonMode=\"StrongWildcard\"
             maxBufferSize=\"2147483647\" maxBufferPoolSize=\"2147483647\" maxReceivedMessageSize=\"2147483647\"
             messageEncoding=\"Text\" textEncoding=\"utf-8\" transferMode=\"Buffered\"
             useDefaultWebProxy=\"true\">
                <readerQuotas maxDepth=\"64\" maxStringContentLength=\"2147483647\" maxArrayLength=\"2147483647\"
                 maxBytesPerRead=\"4096\" maxNameTableCharCount=\"16384\" />
                <security mode=\"None\">
                    <transport clientCredentialType=\"None\" proxyCredentialType=\"None\"
                     realm=\"\" />
                    <message clientCredentialType=\"UserName\" algorithmSuite=\"Default\" />
                </security>
            </binding>
        </basicHttpBinding>
    </bindings>
    <client>
        <endpoint address=\"---HostingSiteURL---/Service.svc\"
         binding=\"basicHttpBinding\" bindingConfiguration=\"BasicHttpBinding_IService\"
         contract=\"SimSyncServiceReference.IService\" name=\"BasicHttpBinding_IService\" />
    </client>
</system.serviceModel>
    
已邀请:
首先,仅当客户端接收到消息(响应)时才使用客户端上的\“ maxReceivedMessageSize \”,因此在您的情况下,您根本不必在客户端上设置MaxReceivedMessageSize;它永远不会被使用。您确实需要在服务端进行设置。 如果遇到问题,请参见其他stackoverflow主题。有关如何在服务端进行一般设置的信息,请参见此博客文章。可以想像,这类似于您在客户端上执行此操作的方式。 其次,这可能与安全性有关。如果是这样,您可以通过查看以下文章来解决问题: http://msdn.microsoft.com/en-us/library/bb628618.aspx http://msdn.microsoft.com/zh-CN/magazine/cc163570.aspx#S6 http://msdn.microsoft.com/en-us/library/ms733130.aspx 第三,简单地将“错误请求”报告为错误消息是没有用的。 :-)请参阅我在WCF上未对JSON输入进行反序列化的答案,以获取有关如何改善跟踪,调试和详细信息功能的详细步骤,以便可以更好地处理服务和客户端上到底出了什么问题。 希望这可以帮助!     
您是否尝试过HTTP POST?与GET相比,POST可以发送更多的数据。     

要回复问题请先登录注册