• 0

[C#] soap is slow


Question

I was just noticing while transferring my binary files from my database my network utilization was only running about about 5.26%. Is there a reason .NET doesn't use 100% of your bandwidth when you are calling a web soap call? I'm transferring PDF files (which can avg about 6 MB per file) and it is agonizingly slow. The call is super fast for calls that the file is 500 KB or less. I have the feeling if it was really transferring the soap call as quickly as it could the network % would be 100 would it not?

Link to comment
https://www.neowin.net/forum/topic/1072085-c-soap-is-slow/
Share on other sites

14 answers to this question

Recommended Posts

  • 0

I was just noticing while transferring my binary files from my database my network utilization was only running about about 5.26%. Is there a reason .NET doesn't use 100% of your bandwidth when you are calling a web soap call? I'm transferring PDF files (which can avg about 6 MB per file) and it is agonizingly slow. The call is super fast for calls that the file is 500 KB or less. I have the feeling if it was really transferring the soap call as quickly as it could the network % would be 100 would it not?

Your assumption sir, is incorrect.

  • 0

SOAP isn't really designed for large files. It's supposed to be for messaging between endpoints. I would recommend using SOAP to expose a URL for the file and using normal HTTP or other methods for transferring the files.

This article may help some: http://msdn.microsoft.com/en-us/library/aa480521.aspx

  • Like 2
  • 0

I just spent the last couple months implementing a java soap web service in an asp.net application (it took so long because the group that wrote it either didn't care or didn't know that it didn't work in anything except java applications, and they had to fix it). All the service does is return either an image (as a byte array) or a URL to the image. Most of the images are less than 200KB, but there's a few that are over 1MB, and those take noticeably longer to retrieve and this is an internal intranet site. Like GreyWolf said, it'd be better to expose the URL to the file you want instead of actually returning the file, but if this is not an option, then you just have to work with what you have.

  • 0

Well all of the PDFs are stored as a byte array in a database. So I guess in theory I could save a tmp file and then expose the url to that tmp file. I'm guessing then use another method to download that file. The question is would that create more overhead then the way it's already being done?

  • 0

Well all of the PDFs are stored as a byte array in a database. So I guess in theory I could save a tmp file and then expose the url to that tmp file. I'm guessing then use another method to download that file. The question is would that create more overhead then the way it's already being done?

That's exactly what I did with the images that were coming back. I saved them on the server, then returned the direct URL to that image. There shouldn't be much (if any) overhead doing this other than the amount of time it'd take to save the file and finish the post back.

  • 0

Well all of the PDFs are stored as a byte array in a database. So I guess in theory I could save a tmp file and then expose the url to that tmp file. I'm guessing then use another method to download that file. The question is would that create more overhead then the way it's already being done?

I would say store the PDFs on a server with an accessible URL and store the address in the database. Did you check out the MSDN article I linked earlier? It has a number of suggestions on how to handle exactly what you're trying to do.

This article about SOAP + Attachments is referenced in the MSDN one but the link is old. It may be helpful as well.

  • 0

Sorry I should have mentioned I did look at those articles and they are really interesting. I'm going to go with the WCF MTOM route I think and re-design the core transfer functions. I don't know much about WCF but it looks really similar to regular web service (.asmx) coding. Or I may do the URL part I'm not sure. So many options lol. I really like the idea of the files being stored as a byte array blob in the database but if that just isn't a good practice maybe I should re-consider my methods. Because WCF will be basically the same thing just with a slightly more optimized method of transporting the xml file if I am not mistaken? MTOM just is an optimized method of transferring binary parts via soap message right?

  • 0

can you return sockets from web services to write data to?

You can, but there can be issues with it. Check the section labeled "Other Hybrid Approaches" in that article. :)

In reference to MTOM: http://msdn.microsof...y/aa528822.aspx

If your client and server are both using .NET you might also look into using remoting.

  • 0

I think part of the problem with the method I am currently using is that I may have my app.config setup incorrectly. There is a way I've heard to change how much data gets buffered / sent at once. So in theory if my internet can handle 1.2 MB/s then I could buffer 1.2MB then send it off as one chunk right?

  • 0

I think part of the problem with the method I am currently using is that I may have my app.config setup incorrectly. There is a way I've heard to change how much data gets buffered / sent at once. So in theory if my internet can handle 1.2 MB/s then I could buffer 1.2MB then send it off as one chunk right?

Theoretically; but I wouldn't advise it

This topic is now closed to further replies.
  • Posts

    • Glad I uninstalled this incredibly buggy browser. Looking at that changelog, they clearly don't test their updates at all.
    • UniGetUI 2026.2.2 by Razvan Serea UniGetUI is an application whose main goal is to create an intuitive GUI for the most common CLI package managers for Windows 10 and Windows 11, such as Winget, Scoop and Chocolatey. With UniGetUI, you'll be able to download, install, update and uninstall any software that's published on the supported package managers — and so much more. UniGetUI features Install, update and remove software from your system easily at one click: UniGetUI combines the packages from the most used package managers for windows: WinGet, Chocolatey, Scoop, Pip, Npm and .NET Tool. Discover new packages and filter them to easily find the package you want. View detailed metadata about any package before installing it. Get the direct download URL or the name of the publisher, as well as the size of the download. Easily bulk-install, update or uninstall multiple packages at once selecting multiple packages before performing an operation Automatically update packages, or be notified when updates become available. Skip versions or completely ignore updates in a per-package basis. Manage your available updates at the touch of a button from the Widgets pane or from Dev Home pane with UniGetUI Widgets. The system tray icon will also show the available updates and installed package, to efficiently update a program or remove a package from your system. Easily customize how and where packages are installed. Select different installation options and switches for each package. Install an older version or force to install a 32bit architecture. [But don't worry, those options will be saved for future updates for this package] Share packages with your friends to show them off that program you found. Here is an example: Hey @friend, Check out this program! Export custom lists of packages to then import them to another machine and install those packages with previously-specified, custom installation parameters. Setting up machines or configuring a specific software setup has never been easier. Backup your packages to a local file to easily recover your setup in a matter of seconds when migrating to a new machine Devolutions UniGetUI 2026.2.2 changelog: This release marks the completion of UniGetUI's migration from WinUI to Avalonia. With the remaining WinUI components and dependencies now removed, UniGetUI is fully powered by Avalonia. This update also brings Windows 11 Snap Layouts support, refined styling throughout the application, improved log viewing, new illustrations, and significantly smaller release packages. Highlights Further refined the Avalonia user interface to better match WinUI styling and behavior across package lists, navigation elements, dialogs, and controls. Added support for Windows 11 Snap Layouts when hovering the maximize button, matching the behavior of native Windows applications. Added illustrations for empty and loading package list states, improving visual feedback throughout the application. Improved the operation log window so automatic scrolling no longer interrupts users when reviewing previous log entries. Reduced installer and application package sizes, resulting in smaller downloads and a significantly leaner Windows distribution. User Interface Improvements Improved package list styling, column headers, backgrounds, hover states, and selection indicators for a more polished and consistent experience. Refined sidebar navigation and segmented controls to better align with modern Windows design patterns. Improved package tag badges and icon presentation throughout the application. Updated several labels, placeholders, and interface elements for improved clarity and consistency. Removed the remaining WinUI-specific styling dependencies, further consolidating the application around Avalonia. Windows Improvements Added native Windows 11 Snap Layouts integration for the maximize button. Improved maximize button hover and pressed visual states to more closely match native Windows behavior. Performance & Reliability Reduced the size of Windows release packages by removing unnecessary runtime dependencies and optimizing published builds. Reduced installer size through improved compression settings. Simplified application dependencies and reduced overall maintenance complexity. Fixes Fixed log output auto-scrolling behavior when manually reviewing previous entries. Resolved various UI inconsistencies and styling issues across the Avalonia interface. Addressed several minor issues and edge cases throughout the application. Other Changes Dependency cleanup and project maintenance. Internal code refactoring and infrastructure improvements. Additional test coverage and build pipeline optimizations. Download: UniGetUI 64-bit | Portable | ~90.0 MB (Open Source) Download: UniGetUI ARM64 | Portable Links: UniGetUI Home Page | GitHub | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • The best controller for XBOX and PC is down to the lowest price by Taras Buria Image via Neowin The GameSir G7 Pro is a fantastic controller for XBOX and PC. Officially certified, it works with Microsoft's consoles, mobile devices, and PCs, giving you a universal controller for any kind of gaming machine. And right now, you can save 20% on it, thanks to the latest deal during Prime Day 2026 (purchase link below). The G7 Pro has the classic XBOX layout, complemented by a couple of extra elements, such as the M button for changing various settings and four additional remappable buttons. It also has trigger locks and TMR sticks that eliminate drifting issues, giving you a reliable, long-lasting gamepad. The controller is powered by a built-in battery, which charges via a USB Type-C cable or the bundled dock station. The G7 Pro supports wireless (XBOX Wireless, proprietary dongle, or Bluetooth) and wired connectivity. In addition to software customization (you can remap multiple buttons to different actions), it lets you personalize the look by swapping the faceplate or grips, enabling multiple design combinations. Other features include a 1,000Hz polling rate, an audio jack for your headphones, Hall Effect triggers, and a swappable D-pad (two extra are included). The controller is also available in four color variants, and all of them are now discounted. Thanks to quality materials, reliable components, rich customization, universal compatibility, and an affordable price tag, the G7 Pro received very high praise in our review. It is certainly among the best controllers you can buy. GameSir G7 Pro - $63.99 | 20% off with Prime Good to know This Amazon deal is U.S. specific, and not available in other regions unless specified. We only use first-party seller links (at the time of article publishing); ensure that you purchase from a first-party seller link only. Check out Today's Deals on Amazon | or our recent tech deals. Become a Prime member (for Students or SNAP) via Neowin Get Prime Access - Prime for half price (for qualifying Medicaid, EBT, SNAP) Subscribe to Prime Video, Audible Plus, Music Unlimited or Kindle Unlimited via Neowin As an Amazon Associate, we earn from qualifying purchases.
    • Microsoft further improving Windows 11 Taskbar with latest builds by Sayan Sen Microsoft has released new Windows 11 builds for users flighting the Experimental channels. The new builds are 26300.8758 for Windows 11 26H2, 28120.2374 for 26H1, and 29617.1000 for future platforms. There are improvements related to the Taskbar, File Explorer and more with the new update. The full changelogs are given below: First we have the build 26300.8758: Changes and improvements gradually being rolled out [Taskbar] Taskbar customization just got easier. As we continue to make improvements to the Taskbar experience mentioned last month, we've introduced a dedicated Taskbar Size setting, making it simpler to find, understand, and personalize your ideal taskbar experience. UI showing the new Taskbar Size setting in Settings. We've also made refinements to the transitions between taskbar sizes for a smoother overall experience. [File Explorer] We've improved the reliability of thumbnail previews for cloud files in the Details pane. The pane has also been reorganized so file properties are easier to find and review at a glance. Fixed an issue where the OneDrive shortcut in File Explorer stops working when File Explorer is run in administrative mode. Fixed an issue where the confirmation dialog might display an internal Recycle Bin file name instead of the original file name when permanently deleting a file. [Sounds] Improved system sounds when using Windows in dark mode. Up next we have build 28120.2374: Changes and improvements gradually being rolled out This update includes a small set of general improvements and fixes [Mobile Device Settings] You can add and manage your mobile devices in Settings under Bluetooth & Devices > Mobile Devices. On this page, you can manage features such as using your device as a connected camera or accessing your device's files in File Explorer. [Remote Recovery Management] Added a recovery remote management plug-in to extend WinRE management capabilities for MDM providers. [Input] The emoji panel (Windows key + period (.)) now uses GIPHY as the GIF provider, delivering a smoother GIF browsing and sharing experience following the deprecation of the Tenor API. Finally we have the changelog for Windows 11 build 29617.1000: Changes and improvements gradually being rolled out [Windows Update] As announced in the Windows Update announce blog, we are now bringing a new unified update experience to reduce the number of reboots you see per month. We are starting by coordinating driver, .NET, and firmware updates to align with the monthly quality update, reducing the update experience to a single monthly restart. See the blog for more information. [Windows Magnifier] Magnifier now gives you more control over how you zoom. You can type an exact zoom percentage directly in the magnifier toolbar to land on precisely the level you need. We've also added preset step increments (5%, 10%, 25%, 50%, 100%, 150%, 200%, and 400%) to the Settings dropdown, so you can jump to common levels in a single click. Whether you need a subtle boost or a dramatic close-up, Magnifier adapts to how you want to zoom. Enter an exact percentage or jump to preset steps —5% up to 400%. Feedback: Share your thoughts in Feedback Hub (WIN + F) under Accessibility > Magnifier. [Accessibility] We're introducing screen tint, a new accessibility setting that applies a color overlay across your entire display, softening its intensity so it's easier on your eyes throughout the day. If bright, saturated screens leave you with tired or sensitive eyes by the end of a long session, screen tint can help. Screenshot showing UI for screen tint in Accessibility, with color presets and a strength slider. To get started, open Settings > Accessibility (or press WIN + U) and look for screen tint under the Vision section. From there, you can: Pick from six preset colors or choose a custom color of your own. Adjust the tint strength slider from a subtle wash to full intensity. Night light warms your display to reduce blue light that can interfere with sleep. Screen tint reduces overall screen intensity to ease eye fatigue and light sensitivity during the day. They tackle different problems and you can use both at the same time, one working on warmth and the other on intensity. Note that turning on screen tint will disable color filters, and vice versa. If you currently rely on color filters, you might need to keep screen tint turned off. Feedback: Share your thoughts in Feedback Hub (WIN + F) under Accessibility > Narrator. [Voice Access] Voice Access now supports Portuguese (Portugal), Portuguese (Brazil), and Korean (South Korea). [Audio] Continuing our work on improving Sound Settings, we've made a few more updates in this build: We've adjusted the description text for the Allow option in properties for audio devices to include the current state of the device, to improve the clarity of the text and the purpose of the button actions. "Listen to this device" is now available in properties for audio devices, so you don't need to enter Control Panel for this functionality. [Multiple Desktops] Improved explorer reliability when switching between multiple desktops. [Storage] We've updated the dialog when creating a Dev Drive to now support specifying the size in GB instead of only MB. This has also been added when changing the size of volumes under Settings > System > Storage. [Personalization] This update improves color selection accuracy when adjusting your accent color to match your wallpaper when automatic accent color selection is enabled in Personalization settings. This update improves wallpaper persistence reliability across restarts and upgrades, including better support for large-resolution wallpapers and other scenarios to prevent solid color wallpaper fallback. [Display and Graphics] Improves the reliability and persistence of applying color profiles. You can view the official blog posts here (link1, link2, link3) on Microsoft's site.
  • Recent Achievements

    • One Year In
      bernmeister earned a badge
      One Year In
    • Week One Done
      Scoobystu earned a badge
      Week One Done
    • Week One Done
      tuben earned a badge
      Week One Done
    • First Post
      OffsetAbs earned a badge
      First Post
    • Reacting Well
      OffsetAbs earned a badge
      Reacting Well
  • Popular Contributors

    1. 1
      +primortal
      441
    2. 2
      +Edouard
      196
    3. 3
      PsYcHoKiLLa
      154
    4. 4
      FloatingFatMan
      71
    5. 5
      Steven P.
      67
  • Tell a friend

    Love Neowin? Tell a friend!