(413) 请求实体太大 |上传预读大小

2024-03-03

我使用 .NET 4.0 编写了一个 WCF 服务,该服务托管在我的 Windows 7 上x64带有 IIS 7.5 的终极系统。 其中一个服务方法有一个“对象”作为参数,我正在尝试发送一个包含图片的字节[]。 只要该图片的文件大小小于约。 48KB,一切顺利。但如果我尝试上传更大的图片,WCF 服务会返回错误:(413) Request Entity Too Large.因此,我当然花了 3 个小时在谷歌上搜索错误消息,并且我看到的有关此主题的每个主题都建议提高“uploadReadAheadSize”属性。 所以我所做的是使用以下命令(10485760 = 10MB):

"appcmd.exe set config -section:system.webserver/serverruntime/uploadreadaheadsize: 10485760 /commit:apphost"

"cscript adsutil.vbs set w3svc/<APP_ID>/uploadreadaheadsize 10485760"

我还使用 IIS 管理器通过打开站点并转到“管理”下的“配置编辑器”来设置该值。 不幸的是,我仍然收到“请求实体太大”错误,这真的令人沮丧!

那么有人知道我还能尝试什么来修复这个错误吗?


这不是IIS的问题,而是WCF的问题。默认情况下,WCF 将消息限制为 65KB,以避免使用大消息进行拒绝服务攻击。另外,如果您不使用 MTOM,它会将 byte[] 发送到 base64 编码的字符串(大小增加 33%)=> 48KB * 1,33 = 64KB

要解决此问题,您必须重新配置服务以接受更大的消息。此问题之前引发了 400 Bad Request 错误,但在较新版本中,WCF 开始使用 413,这是此类错误的正确状态代码。

你需要设置maxReceivedMessageSize在你的绑定中。您还可以需要设置readerQuotas.

<system.serviceModel>
  <bindings>
    <basicHttpBinding>
      <binding maxReceivedMessageSize="10485760">
        <readerQuotas ... />
      </binding>
    </basicHttpBinding>
  </bindings>  
</system.serviceModel>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(413) 请求实体太大 |上传预读大小 的相关文章

  • 多线程 C# 应用程序中的惰性单例

    我正在开发一个使用 WCF Web 服务的多线程 C 应用程序 与 Web 服务的连接将有一个特定的超时时间 我们可以定义该超时时间 之后连接将关闭 我希望使用单例类来存储与 Web 服务的连接 我试图获取实例如下 CLazySinglet
  • 随机 IIS 会话超时

    我有一个非常奇怪的问题 我正在寻求任何建议 我有一个运行在 IIS 6 上的 ASP NET 网站 它在大多数情况下运行良好 但是 会话似乎是随机清除的 因此 如果我登录 单击周围 我就会被随机启动 有时是在 30 秒 4 次点击之后 有时
  • cryptoTicket 参数的值无效

    我最近修改了我公司 eComm 站点的登录名 以具有 保持登录状态 功能 主要更改是使表单身份验证 cookie 对这些用户持久存在 更改发布后 我开始在日志中看到此异常 Invalid value for encryptedTicket
  • IIS 反向代理干扰重定向位置标头

    我在 ASP Net 站点上有以下重写规则 以使 IIS 充当反向代理
  • 如何跟踪长时间运行的 IIS 调用?

    我们的用户焦躁不安 他们不断抱怨一些模糊的 无法衡量的东西 特别是缓慢 但没有给出具体细节 这当然使得追踪变得非常困难 尽管如此 他们很可能是对的 有些服务器调用需要很长时间才能返回 所以我想在网站上放置某种嗅探器 我们在 IIS7 上使用
  • 通过 WCF 提供类对象的数组或列表

    任何提供自定义类对象列表或数组的 WCF 客户端服务器示例都会对我有所帮助 但这是我到目前为止所得到的 这是我想提供的班级系统 namespace NEN Server FS Serializable public class XFS pr
  • 通过VBScript调用WCF服务

    有一个WCF服务 配置如下
  • WCF 发现根本不起作用

    我正在尝试将临时发现添加到简单的 WCF 服务客户端设置 当前通过控制台应用程序中的自托管实现 在 Windows 7 上使用 VS2010 进行调试 并执行我在在线教程中可以找到的任何操作 但发现客户端仍然什么也没找到 不用说 如果我打开
  • 实体框架和数据库集

    我正在尝试设置一个通用接口来从存储库中检索实体 问题是我需要从 WCF 服务请求数据 而据我所知 泛型不能与操作合约一起使用 所以我有这个在控制台应用程序中工作 而不是使用服务调用 public virtual List
  • 使 [IsOneWay=true] WCF 服务异步和使用客户端上的任务调用同步方法之间有显着差异吗?

    如果我有这样定义的服务 ServiceContract SessionMode SessionMode NotAllowed public interface IMyService OperationContract IsOneWay tr
  • 了解 ASP.NET 应用程序文件夹

    ASP NET 中的应用程序文件夹用于存储对运行网站至关重要的各种元素 我想更深入地了解这些文件夹 特别是文件夹的可访问性 根据有关的文章ASP NET 网站布局 http msdn microsoft com en us library
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • WCF 服务引用从 WSDL 生成 void 方法

    这是我第一次尝试使用 WCF 所以我猜我做错了什么 我正在尝试访问 WSDL 定义的肥皂服务http confluence atlassian com rpc soap axis confluenceservice v1 wsdl http
  • 尝试对无法访问的主机进行套接字操作

    一位客户在连接到我们的服务器服务的 WCF 客户端上报告了此错误 消息 尝试对无法访问的主机进行套接字操作 类型 System Net Sockets SocketException 从这个链接http msdn microsoft com
  • 将复杂对象传递到 WCF Rest 服务

    我有一个接受复杂对象的操作合约 并且我通过 jQuery 调用该操作 如何使用 jQuery 传递像这样的复杂类型对象 以下是操作签名 public Resolution CreateNewResolution Resolution New
  • TransactionFlow(TransactionFlowOption.Mandatory) 操作行为(TransactionScopeRequired = true

    我正在尝试了解 WCF 事务 但对一个概念感到困惑 行为上有什么不同 TransactionFlow TransactionFlowOption Mandatory and OperationBehavior TransactionScop
  • 对 HTTP 处理程序的同时请求不起作用

    我的 ASP Net 应用程序中有一个通用 HTTP 处理程序 ashx 它执行一些基本但耗时的计算 将进度语句打印到输出 以便让用户了解情况 执行这些计算涉及读取一些在使用处理程序时锁定的数据文件 因此对处理程序的两次调用不要立即开始处理
  • ChannelFactory重用策略

    我一直在读到 ChannelFactory 的创建是昂贵的 除非有技术原因不这样做 否则应该在可能的情况下重用 ChannelFactory 或者通过某种方式缓存它们 或者使用工厂的静态实例 根据您的经验 您发现哪些 ChannelFact
  • WCF 服务调用包装器

    为 WCF 服务调用创建包装器的最佳实践是什么 我认为有必要 为了在同一个地方监视所有呼叫 我正在考虑使用这种代码 这是正确的想法吗 RetType t ServiceExecutionContext
  • 为什么 appcmd.exe 解锁配置在 Azure 模拟器上不起作用?

    我最近升级到 Azure 2 1 SDK 现在我的部分功能遇到了问题web config在计算模拟器上运行时处于 Web 角色中 我的web config包含这个

随机推荐