将 Byte[] 发送到 WCF 服务

Posted

技术标签:

【中文标题】将 Byte[] 发送到 WCF 服务【英文标题】:Sending Byte[] to WCF service 【发布时间】:2014-11-30 02:37:24 【问题描述】:

我想通过一个WCF 服务。所以正如预期的那样,我不能,因为除非我调整配置文件,否则它不会让我这样做。当然我用谷歌搜索我发现使用<httpRuntime maxRequestLength="2048000" executionTimeout="3600" />

但遗憾的是,所有提出这个建议的人,都没有解释在配置文件中添加这个标签的位置我将包含在其中,但它导致错误(网络服务没有启动,立即崩溃)。

那么它应该去哪里(如果它完全解决了问题)在配置文件中? 应该将它包含在哪个标签/部分中?

编辑: 我可以弄清楚如何正确使用标签,现在它不会引发任何错误,但是仍然无法发送 large 数组:(不发送大于约 25kb 的数组)强>

这就是我包含标签的方式:

<system.web>
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5" maxRequestLength="2048000" executionTimeout="36000" />
</system.web>

【问题讨论】:

你确定你试过谷歌吗?因为msdn.microsoft.com/en-us/library/e1f13641(v=vs.100).aspx 不,我没有看到示例!我看到了层次结构!就在顶部。 错误是什么?你为什么不告诉我们? @JohnSaunders:很抱歉浪费了您的时间,如果您觉得自己的时间被浪费了,请停止评论这个问题!我没有让你回答我的问题! 我会停下来,但请考虑一下:我可能不是唯一有这种感觉的读者,而是可能是唯一告诉你他有这种感觉的读者.清理你的问题,这样我就不会这样反应,你会得到更好的答案。 【参考方案1】:

我发现了问题,&lt;httpRuntime maxRequestLength="2048000" executionTimeout="3600" /&gt; 与通过 WCF 发送大型数组无关。当然问题还是和配置文件有关,可以通过下面的配置来解决:

<bindings>
  <basicHttpBinding>
    <binding maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text">
      <readerQuotas maxDepth="2000000" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
    </binding>
  </basicHttpBinding>
</bindings>

【讨论】:

我建议你找个时间看看:***.com/help/how-to-ask 这或许可以解释为什么人们如此“唠叨”你。当然,我们都不知道问题的原因。你几乎没有给我们任何信息,那我们怎么能? @JLRishe:问题的原因是无效的方法,比如用锤子打开罐头。专家可以通过查看标题和方法来弄清楚这一点。现在我知道了,如果有人对此提出问题,我可以“盲目地回答”他们的问题。该网站不是 WCF 的技术支持,但“更多信息”是陈词滥调,并非一直有效。智商才是最重要的! 我想你会看到没有人“盲目地回答”你的问题。您的答案是此处发布的唯一答案。

以上是关于将 Byte[] 发送到 WCF 服务的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 post 将 xml 发送到 wcf 服务

ksoap2 将复杂对象数组发送到 WCF 服务

将 JSON 发送到 WCF Rest 服务 - 对象始终为空

jQuery - 使用 ajax 调用将 JSON 发送到 WCF 服务为空

将 JSON 发送到 C# WCF 服务会导致:请求实体太大

将带有额外参数的文件发送到 WCF REST 服务