将大型二进制文件发送到服务器的WCF服务

问题描述:

我需要使用WCF将大型(100兆最大)binairies上载到服务器。我遵循这个指示:http://www.c-sharpcorner.com/UploadFile/dhananjaycoder/fileuploadsilverlightwcf07142009104020AM/fileuploadsilverlightwcf.aspx将大型二进制文件发送到服务器的WCF服务

它适用于小于50K的任何东西。高于我得到415错误。任何想法?

+0

您正在使用什么约束力? – 2010-02-07 22:32:23

+0

我怀疑它与__maxbuffersize__有关,请尝试增加它们。 – Amirshk 2010-02-07 22:32:37

+0

是不是可以将Stream对象传递给服务来吸引?这更适合传递大文件。 – 2010-02-08 00:02:41

服务器上是否存在最大POST大小限制?

+0

对绑定集最大的大数目: basicHttpBinding的> 是它同样的事情或有一些其它最大我也必须设置? – 2010-02-07 23:52:36

+0

我不确定IIS是什么,但是当我在Tomcat上拒绝Web服务时,我遇到了问题,因为服务器的最大数量可以通过HTTP POST请求提交。可能值得检查IIS的设置,看看是否有类似的设置。 谷歌搜索IIS最大的文章大小,似乎变成了一堆东西。 – chillitom 2010-02-08 11:10:07

您可能想要尝试将maxReceivedMessageSize和maxBufferSize设置为int.MAX并将maxItemsInObjectGraph的值设置为上限。

http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/c85f3ed2-0b55-4375-af79-5926b6cc527c

试试这个在您绑定的配置:

<binding name="MyWindowsAuthenticationBinding" closeTimeout="05:00:00" openTimeout="05:00:00" receiveTimeout="05:00:00" sendTimeout="05:00:00" maxBufferSize="2000000000" maxBufferPoolSize="2000000000" maxReceivedMessageSize="2000000000" messageEncoding="Mtom" transferMode="Streamed"> 
     <readerQuotas maxDepth="2000000000" maxStringContentLength="2000000000" maxArrayLength="2000000000" maxBytesPerRead="2000000000" maxNameTableCharCount="2000000000" />