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











Testing strategies for C#.NET applications include unit testing, integration testing, and end-to-end testing. 1. Unit testing ensures that the minimum unit of the code works independently, using the MSTest, NUnit or xUnit framework. 2. Integrated tests verify the functions of multiple units combined, commonly used simulated data and external services. 3. End-to-end testing simulates the user's complete operation process, and Selenium is usually used for automated testing.

C#.NET interview questions and answers include basic knowledge, core concepts, and advanced usage. 1) Basic knowledge: C# is an object-oriented language developed by Microsoft and is mainly used in the .NET framework. 2) Core concepts: Delegation and events allow dynamic binding methods, and LINQ provides powerful query functions. 3) Advanced usage: Asynchronous programming improves responsiveness, and expression trees are used for dynamic code construction.

C# is a modern, object-oriented programming language developed by Microsoft and as part of the .NET framework. 1.C# supports object-oriented programming (OOP), including encapsulation, inheritance and polymorphism. 2. Asynchronous programming in C# is implemented through async and await keywords to improve application responsiveness. 3. Use LINQ to process data collections concisely. 4. Common errors include null reference exceptions and index out-of-range exceptions. Debugging skills include using a debugger and exception handling. 5. Performance optimization includes using StringBuilder and avoiding unnecessary packing and unboxing.

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

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.

Interview with C# senior developer requires mastering core knowledge such as asynchronous programming, LINQ, and internal working principles of .NET frameworks. 1. Asynchronous programming simplifies operations through async and await to improve application responsiveness. 2.LINQ operates data in SQL style and pay attention to performance. 3. The CLR of the NET framework manages memory, and garbage collection needs to be used with caution.

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

Security best practices for C# and .NET include input verification, output encoding, exception handling, as well as authentication and authorization. 1) Use regular expressions or built-in methods to verify input to prevent malicious data from entering the system. 2) Output encoding to prevent XSS attacks, use the HttpUtility.HtmlEncode method. 3) Exception handling avoids information leakage, records errors but does not return detailed information to the user. 4) Use ASP.NETIdentity and Claims-based authorization to protect applications from unauthorized access.
