- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我现在已经调查了过去两个小时的 400 - BadRequest 代码。
很多建议都是为了确保正确设置 bindingConfiguration 属性,就我而言,确实如此。
现在,在摧毁我所在的建筑物之前,我需要你的帮助 :-)
我运行 WCF RestFull 服务(非常轻量级,使用此资源获取灵感:http://msdn.microsoft.com/en-us/magazine/dd315413.aspx),它(目前)接受通过 POST 动词提供的 XmlElement (POX)。
在实现真正的客户端之前,我目前只使用 Fiddler 的请求生成器(因为这是混合环境)。
当我对小于 65K 的 XML 执行此操作时,它可以正常工作 - 更大,它会引发此异常:
已超出传入邮件 (65536) 的最大邮件大小配额。要增加配额,请在适当的绑定(bind)元素上使用 MaxReceivedMessageSize 属性。
这是我的 web.config 文件(我什至包括了客户端标签(绝望的时候!)):
<system.web>
<httpRuntime maxRequestLength="1500000" executionTimeout="180"/>
</system.web>
<system.serviceModel>
<diagnostics>
<messageLogging logEntireMessage="true" logMalformedMessages="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" />
</diagnostics>
<bindings>
<webHttpBinding>
<binding name="WebHttpBinding" maxReceivedMessageSize="1500000" maxBufferPoolSize="1500000" maxBufferSize="1500000" closeTimeout="00:03:00" openTimeout="00:03:00" receiveTimeout="00:10:00" sendTimeout="00:03:00">
<readerQuotas maxStringContentLength="1500000" maxArrayLength="1500000" maxBytesPerRead="1500000" />
<security mode="None"/>
</binding>
</webHttpBinding>
</bindings>
<client>
<endpoint address="" binding="webHttpBinding" bindingConfiguration="WebHttpBinding" contract="Commerce.ICatalogue"/>
</client>
<services>
<service behaviorConfiguration="ServiceBehavior" name="Catalogue">
<endpoint address=""
behaviorConfiguration="RestFull"
binding="webHttpBinding"
bindingConfiguration="WebHttpBinding"
contract="Commerce.ICatalogue" />
<!-- endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" / -->
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="RestFull">
<webHttp/>
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<serviceDebug httpHelpPageEnabled="true" includeExceptionDetailInFaults="true"/>
<serviceMetadata httpGetEnabled="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
最佳答案
好吧,这件事确实让我很难解决,我会饶过别人的。
挑战在于,我使用了 <%@ ServiceHost Factory="System.ServiceModel.Activation.WebServiceHostFactory" Service="fullyQualifiedClassName" %>
,这是一种很好且简单的工厂实现方法。
但是,这种方法有其缺点;由于在 web.config 文件中不需要任何配置,WebServiceHostFactory 类在设计上不会从 web.config 文件中读取。
我知道;我可以从此类继承,并进行适当的更改,以便它确实可以从配置文件中读取,但这似乎有点超出范围。
我的解决方案是回到更传统的 WCF 实现方式; <%@ ServiceHost Service="fullyQualifiedClassName" CodeBehind="~/App_Code/Catalogue.cs" %>
,然后在 web.config 文件中使用我已经配置的值。
这是我修改后的 web.config 文件(关于 Maddox 头痛):
<system.serviceModel>
<bindings>
<webHttpBinding>
<binding name="XmlMessageBinding" maxReceivedMessageSize="5000000" maxBufferPoolSize="5000000" maxBufferSize="5000000" closeTimeout="00:03:00" openTimeout="00:03:00" receiveTimeout="00:10:00" sendTimeout="00:03:00">
<readerQuotas maxStringContentLength="5000000" maxArrayLength="5000000" maxBytesPerRead="5000000" />
<security mode="None"/>
</binding>
</webHttpBinding>
</bindings>
<services>
<service name="fullyQualifiedClassName" behaviorConfiguration="DevelopmentBehavior">
<endpoint name="REST" address="" binding="webHttpBinding" contract="fullyQualifiedInterfaceName" behaviorConfiguration="RestEndpointBehavior" bindingConfiguration="XmlMessageBinding" />
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="RestEndpointBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="DevelopmentBehavior">
<serviceDebug httpHelpPageEnabled="true" includeExceptionDetailInFaults="true"/>
<serviceMetadata httpGetEnabled="true"/>
</behavior>
<behavior name="ProductionBehavior">
<serviceDebug httpHelpPageEnabled="false" includeExceptionDetailInFaults="false"/>
<serviceMetadata httpGetEnabled="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
关于rest - 无法通过 web.config 设置 maxReceivedMessageSize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1439952/
我有以下用于 WCF 服务的服务器端 app.config:
我需要上传 1.5MB 的文件。鉴于这将被序列化为 base64。估计我需要在 WCF 的 maxReceivedMessageSize 设置中使用的值的好方法是什么? 最佳答案 Base64 编码将
搜索没有成功... 我不断得到 The maximum message size quota for incoming messages (65536) has been exceeded. To i
我在为较大的文件设置 maxReceivedMessageSize 时遇到问题。 我得到: The maximum message size quota for incoming messages (
我在项目中引用了这个外源服务,调用它时出现以下错误: The maximum message size quota for incoming messages (65536) has been exc
那里有很多类似的问题,但我已经尝试了每个解决方案,但无济于事。 我们有一个使用 WebServiceHostFactory 初始化的 Web 服务,但如果向它抛出超过 64k 的数据,我们会收到“40
我们注意到该值的唯一时间似乎是服务因该值太低而崩溃。解决此问题的快速方法是将其设置为某个非常大的数字。然后没问题。 我想知道的是,将这个值设置得高有什么负面影响吗? 我可以看到它可以潜在地为拒绝服务攻
我在这段代码中使用 F# 和 WsdlTypeProvider: type svc = FSharp.Data.TypeProviders.WsdlService let svcClient = sv
我把 maxReceivedMessageSize="52428800"transferMode="Streamed"。流媒体不应该对这个值(value)更仁慈吗?流就是流,所以让它一点一点地拉。然而
我想以编程方式在我的客户端中将 MaxReceivedMessageSize 属性设置为更高的限制(由于(400)错误请求错误)。 这是我正在使用的代码... WCFServiceTestClient
作为 WCF 的新手,请帮帮我。我收到这个错误。我在互联网上搜索过这个问题,我有很多解决方案,但是当我应用这些解决方案时。我面临的一些新问题。所以请给我一个有效的解决方案。 已超出传入邮件 (6553
我的控制台应用程序中有一个托管 WCF 服务,如下所示: static void Main(string[] args) { Uri baseAddress = new Uri
我有一个 ASP.NET (C#) 4.0 WCF 应用程序。我收到消息错误: Error : The maximum message size quota for incoming messages
我想在 WCF 客户端的 App.config 中设置 maxReceivedMessageSize。 如果 maxReceivedMessageSize 等于或小于 4215,则它工作正常。尽管将其
Web 服务是一个 ASMX 网络服务(不是 WCF) 我收到一个错误 The maximum message size quota for incoming messages (65536) has
我现在已经调查了过去两个小时的 400 - BadRequest 代码。 很多建议都是为了确保正确设置 bindingConfiguration 属性,就我而言,确实如此。 现在,在摧毁我所在的建筑物
我注意到 2147483647 似乎是 maxReceivedMessageSize 的流行选择,但这是限制吗? 最佳答案 不,限制是 Int64.MaxValue 1即:92233720368547
每当我连接客户端以将数据发送到 WCF Azure 服务时,我都会收到此错误: “已超出传入消息的最大消息大小配额 (65536)。要 增加配额,在适当的绑定(bind)上使用 MaxReceived
我们的 WCF 服务在处理大型请求时返回以下错误: “System.ServiceModel.EndpointNotFoundException:http://xxx.svc 上没有监听可以接受消息的
在向网络服务发送请求时,我遇到了一个非常烦人的问题。 请求消息的参数之一是Batch,可以设置为Y或N。当我将其设置为 N 时没有问题,并且我收到包含单个订单详细信息的响应。 但是,当我将 Batch
我是一名优秀的程序员,十分优秀!