如何通过WCF处理大文件上传?

2024-01-04

我正在考虑将 WCF 用于一个项目,该项目需要人们能够将大文件(64MB-1GB)上传到我的服务器。我将如何使用 WCF 处理此问题,可能能够恢复上传。

为了处理更大的客户群,我想通过 WCF 测试 JSON。这将如何影响文件上传?可以通过 JSON 完成,还是需要切换到 REST 来完成上传部分?


如果你想上传大文件,你肯定需要研究一下WCF 流模式 http://msdn.microsoft.com/en-us/library/ms731913.aspx.

基本上,您可以更改绑定上的传输模式;默认情况下,它是缓冲的,即整个消息需要在发送方上缓冲、序列化,然后作为一个整体进行传输。

使用流式传输,您可以定义单向流式传输(仅用于上传、仅用于下载)或双向流式传输。这是通过将绑定的transferMode 设置为来完成的StreamedRequest, StreamedResponse,或者只是简单的Streamed.

<bindings>
   <basicHttpBinding>
      <binding name="HttpStreaming" 
               maxReceivedMessageSize="2000000"
               transferMode="StreamedRequest"/>
   </basicHttpBinding>
</bindings>

然后你需要有一个服务合约,它要么接收一个类型的参数Stream(用于上传),或返回 type 的值Stream(用于下载)。

[ServiceContract]
public interface IFileUpload
{
    [OperationContract]
    bool UploadFile(Stream stream);
}

应该这样做!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过WCF处理大文件上传? 的相关文章

随机推荐

  • Joomla MySQL 性能

    我一直在开发一个版本为2 5 11的Joomla网站 网站的流量将会非常高 我的问题是关于 MySQL 查询性能的 数据库包含大约 60000 行内容表 下面看到的查询 核心 com content 文章模型查询 执行时间约为 6 秒 非常
  • 如何显示尾随“%”符号?

    在 SO Line 的折扣百分比列中 我想在其中显示尾随 我尝试将显示格式设置为 P 但这是一场灾难 由于实际值是数据库中的百分比 因此不必乘以 100 感谢您的回答 您应该设置DisplayFormat to 0 00 结果你会得到以下结
  • Py2Exe 检测为病毒。备择方案?

    所以 我创建了一个python程序 使用 Py2Exe 转换为 exe 并尝试使用 PyInstaller 和 cx freeze 所有这些都会触发程序在virustotal 和我的本地计算机上被avast avg 和其他程序检测为病毒 我
  • Cython:编译独立的静态可执行文件

    我正在尝试编译一个不使用动态加载器的可执行文件 ELF 文件 我用了Cython将Python编译为C cython3 3 test py embed Then gcc test c otest pkg config libs cflags
  • 如何将 Material UI 集成到 Svelte 项目中

    我想整合材质用户界面 https sveltematerialui com 进入我的 Svelte 项目 我尝试遵循官方文档here https github com hperrin svelte material ui 但我不知道为什么在
  • 有没有类似于 Java 的 mini-mvc-profiler 的东西?

    正如标题所说 有没有类似的东西迷你 MVC 分析器 http code google com p mvc mini profiler 对于Java 我正在寻找可以用于Struts http struts apache org or 春季MV
  • 我们可以指定散景导出的 png 文件大小/分辨率吗?

    使用 Python Bokeh export png 函数 我们可以将对象导出到 png 文件 但是 我找不到任何方法来指定生成的 png 文件大小 分辨率 我发现我使用相同的代码在Windows和Linux中得到了不同的png文件 在 W
  • Postgresql 捷克语全文搜索(无默认语言配置)

    我正在尝试设置捷克语全文搜索 我有点困惑 因为我看到了一些cs cz affix and cs cz dict里面的文件tsearch data文件夹 但没有捷克语配置 它可能不随 Postgres 一起提供 那么我应该创建一个吗 我必须创
  • 使用 Gradle 将依赖项添加到运行时映像

    我不知道如何添加依赖项 我的模块需要 Log4j 我向模块信息添加了要求 我还添加了 gradle 依赖项 我可以运行项目 但无法创建自定义运行时映像 plugins id java id application id org openjf
  • 返回数组中重复元素的最佳方法

    这是我用来返回重复元素的方法 但是 当我的数组有大量长文本项目时 我面临着最危险的性能问题 例如浏览器关闭等 var arr 9 9 111 2 3 4 4 5 7 var sorted arr arr sort var results f
  • vscode Typescript Intellisense 仅显示第一个选项?

    我正在开发我的 React Native TypeScript 应用程序 今天突然 没有更新 没有更改设置 我的智能感知开始只显示第一个建议 无论如何 这个问题不是特定于特定类的 我已经多次重新启动Vscode 重新启动TS语言服务器 删除
  • 参数中包含空格的 Python 子进程调用在 Windows 上不起作用

    我正在运行一个 java 命令 该命令获取类路径和其他有空格的文件位置 Windows 似乎不喜欢它 我从 C Program Files Splunk 运行程序 其中有一个空格 这是我的命令 c1 os path join appdir
  • 如何获取TFS集合中所有项目的名称?

    关于如何从TFS获取集合参考here https stackoverflow com questions 16100991 how to get all collections from tfs 16100992 16100992 请参考h
  • Kube-proxy 或 ELB“延迟”HTTP 请求数据包[关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我们正在 AWS 中的 Kubernetes 1 9 3 上运行 Web API 应用程序 使用 KOPS 设置 该应用程序是一个部署
  • 用换行符/段落标记替换所有空格以制作单词列表

    我正在尝试列出我们在课堂上翻译的希腊语文本的词汇表 我想用段落标记替换每个空格或制表符 以便每个单词都出现在自己的行上 谁能给我 sed 命令 并解释我在做什么 我仍在尝试弄清楚 sed 对于相当现代的 sed 版本 编辑标准输入以产生标准
  • 通过 Azure Devops 部署 Nuget 包时未添加依赖项

    我创建了 net 标准库 创建后 我尝试通过选择项目文件中存在的包选项从我的视觉工作室创建 nuget 包 然后尝试在另一个控制台应用程序中使用本地创建的 nupkg 文件 它工作正常 它显示了预期的依赖关系 然后 我通过创建管道通过 Az
  • android:admob InterstitialAd 在 loadAd 时崩溃

    我正在使用 Admob 的 InterstitialAd 我的应用程序仅在第一次调用时才会在 loadAd 处崩溃 并且不可重现 每运行 100 200 次或多或少就会发生一次 广告单元 ID 肯定是正确的 因此 如果 loadAd 在第一
  • Spark CollectAsMap

    我想知道collectAsMap在Spark中是如何工作的 更具体地说 我想知道所有分区的数据聚合将在哪里进行 聚合发生在 master 或workers 中 在第一种情况下 每个工作人员将其数据发送到主设备上 当主设备从每个工作人员收集数
  • .htaccess:将根 url 重定向到子目录,但保留根 url

    我正在清理域的目录结构 在根目录中设置根 url 的内容对我来说是不幸的 并且需要一些关于如何正确使用 RewriteRule 的见解 The Gist I want 域名 tld to use 域名 tld 子目录 但仍然显示为域名 tl
  • 如何通过WCF处理大文件上传?

    我正在考虑将 WCF 用于一个项目 该项目需要人们能够将大文件 64MB 1GB 上传到我的服务器 我将如何使用 WCF 处理此问题 可能能够恢复上传 为了处理更大的客户群 我想通过 WCF 测试 JSON 这将如何影响文件上传 可以通过