How to Send Large File From Client To Server Using WCF in C#? Below the configuration code.
You need to check out streaming, as Dzmitry already pointed out.
In order to be able to send large files as a stream to your service, you'll need to:
Stream
as its input parametertransferMode=StreamedRequest
So first off, you need a method in your service contract:
[ServiceContract]
interface IYourFileService
{
[OperationContract]
void UploadFile(Stream file)
}
Then you need a binding configuration:
<bindings>
<basicHttpBinding>
<binding name="FileUploadConfig"
transferMode="StreamedRequest" />
</basicHttpBinding>
</bindings>
and a service endpoint on your service using that binding configuration:
<services>
<service name="FileUploadService">
<endpoint name="UploadEndpoint"
address="......."
binding="basicHttpBinding"
bindingConfiguration="FileUploadConfig"
contract="IYourFileService" />
</service>
</services>
and then, in your client, you need to open e.g. a filestream and send that to the service method without closing it.
Hope that helps!
Marc
You can take a look at WCF Streaming feature.
In addition to increasing readerQuota settings (mentioned above) I had to also up the maxRequestLength inside the httpRuntime attribute.
<system.web>
<httpRuntime maxRequestLength="2097151" />
</system.web>