将 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】:我发现了问题,<httpRuntime maxRequestLength="2048000" executionTimeout="3600" />
与通过 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 服务的主要内容,如果未能解决你的问题,请参考以下文章
将 JSON 发送到 WCF Rest 服务 - 对象始终为空
jQuery - 使用 ajax 调用将 JSON 发送到 WCF 服务为空