Correct settings to implement WCF to transmit big data
WCF can help us transmit data. But has anyone ever encountered a need for large-capacity data transfer? As long as the correct settings are made, WCF can transmit big data.
When transmitting large data (>65535B) from the client to the WCF server, it was found that the program jumped directly from BeginInvoke of Reference to EndInvoke without entering the actual logic of Service on the server. It is suspected that the data is too large and exceeds the limit. caused.
The problem is that the data I actually sent was just received from the WCF server. There is not much difference in the amount of data coming and going.
Then I discovered that different configurations are actually used on the client and server. For the client, there is such a setting under the system.serviceModel section in the ServiceReferences.ClientConfig file automatically generated when adding ServiceReference to implement WCF transmission of big data:
< bindings>
< basicHttpBinding>
< binding name="BasicHttpBinding_WcfService"
maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647">
< / binding>
< /basicHttpBinding>
< /bindings>Then apply Binding
Configuration in the Client section:
< client>
< endpoint address="http://
localhost:22000/Service/WcfService.svc "
binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_WcfService"
contract="WcfServiceReference.WcfService"
name="BasicHttpBinding_WcfService" />< /client>
The maximum number of cache bytes and the maximum accepted words are specified in the Binding The number of sections is equivalent to the size of 2G! Unless a whole series of TV series is transmitted, it is usually enough.
On the server side, in the Web.config file, the Bindings section is empty, and the Service does not specify the bindingConfiguration attribute, so they use the default size of 65535.
The problem is found and it is easier to solve the problem of WCF transmitting big data:
Add a new Binding setting in the Bindings section and specify the maximum accepted data:
< bindings>
< basicHttpBinding>
< binding name="LargeDataTransferServicesBinding "
maxReceivedMessageSize="2147483647"
messageEncoding="Text" transferMode="Streamed"
sendTimeout="00:10:00" />
< /basicHttpBinding>
< /bindings> Then specify the corresponding Service
bindingConfiguration attribute:
< service behaviorConfiguration=
"Server.Service.WcfServiceBehavior"
name="Server.Service.WcfService">
< endpoint address="" binding=
"basicHttpBinding" bindingConfiguration=
"LargeDataTransferServicesBinding"
contract="Server.Service.WcfService" />
< endpoint address="mex" binding=
"mexHttpBinding" contract="IMetadataExchange" />
< /service>
This way you can send enough from the client Big data.
P.S.:
.net can only transfer 4M files by default, so even though the configuration of both ends of Wcf is set, it still cannot exceed the limit of .net, so if you want to transfer large files, you need to go under the System.Web section Plus
< httpRuntimemaxRequestLength="102400" />
The unit here is KB, so that 100M files can be transferred, which fully solves the problem of WCF transmitting big data. Of course, for such a large file, it is best to transfer it in segments.
.net can only transfer 4M files by default, so even though the configuration of both ends of Wcf is set, it still cannot exceed the limit of .net, so if you want to transfer large files, you need to add
under the System.Web section < httpRuntimemaxRequestLength="102400" />
The unit here is KB, so that 100M files can be transferred, which fully solves the problem of WCF transmitting big data. Of course, for such a large file, it is best to transfer it in segments.
It is recommended not to transmit too large data as it may cause congestion on your network.

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











C#.NET is still important because it provides powerful tools and libraries that support multiple application development. 1) C# combines .NET framework to make development efficient and convenient. 2) C#'s type safety and garbage collection mechanism enhance its advantages. 3) .NET provides a cross-platform running environment and rich APIs, improving development flexibility.

C#.NETisversatileforbothwebanddesktopdevelopment.1)Forweb,useASP.NETfordynamicapplications.2)Fordesktop,employWindowsFormsorWPFforrichinterfaces.3)UseXamarinforcross-platformdevelopment,enablingcodesharingacrossWindows,macOS,Linux,andmobiledevices.

C# is widely used in enterprise-level applications, game development, mobile applications and web development. 1) In enterprise-level applications, C# is often used for ASP.NETCore to develop WebAPI. 2) In game development, C# is combined with the Unity engine to realize role control and other functions. 3) C# supports polymorphism and asynchronous programming to improve code flexibility and application performance.

C#.NETissuitableforenterprise-levelapplicationswithintheMicrosoftecosystemduetoitsstrongtyping,richlibraries,androbustperformance.However,itmaynotbeidealforcross-platformdevelopmentorwhenrawspeediscritical,wherelanguageslikeRustorGomightbepreferable.

C# and .NET adapt to the needs of emerging technologies through continuous updates and optimizations. 1) C# 9.0 and .NET5 introduce record type and performance optimization. 2) .NETCore enhances cloud native and containerized support. 3) ASP.NETCore integrates with modern web technologies. 4) ML.NET supports machine learning and artificial intelligence. 5) Asynchronous programming and best practices improve performance.

How to deploy a C# .NET app to Azure or AWS? The answer is to use AzureAppService and AWSElasticBeanstalk. 1. On Azure, automate deployment using AzureAppService and AzurePipelines. 2. On AWS, use Amazon ElasticBeanstalk and AWSLambda to implement deployment and serverless compute.

C# and .NET runtime work closely together to empower developers to efficient, powerful and cross-platform development capabilities. 1) C# is a type-safe and object-oriented programming language designed to integrate seamlessly with the .NET framework. 2) The .NET runtime manages the execution of C# code, provides garbage collection, type safety and other services, and ensures efficient and cross-platform operation.

The relationship between C# and .NET is inseparable, but they are not the same thing. C# is a programming language, while .NET is a development platform. C# is used to write code, compile into .NET's intermediate language (IL), and executed by the .NET runtime (CLR).
