gpt4 book ai didi

wcf - 可以使用 WCF 数据服务返回文件吗?

转载 作者:可可西里 更新时间:2023-11-01 13:38:58 25 4
gpt4 key购买 nike

我想使用 WCF 数据服务返回 mp3 文件,以及 WCF 已经提供的其他数据类型。这可能吗?

[12/29] 我在 sql 中确实有 mp3 二进制数据(每个大约 10 秒)。我想用它来使用 html 音频标签: <audio src="/server/svc/id" type="audio/mpeg" />Javascript 将更改 id。不确定这将如何与 WCF 返回二进制数组一起使用...

[12/30] 在 CSDL 中设置 mimetype 后,它可以工作。

最佳答案

当然,您可以通过三种可能的方式做到这一点:

  1. 将其作为现有实体的二进制属性包含在内(在这种情况下,通常服务托管代表每个音频文件的实体,其属性之一是实际的音频 mp3)。在代码中,这只是声明一个 byte[] 类型的属性(并填写)。好处是这真的很容易设置。不利之处在于,当您获取此类实体时,整个 mp3 都会被下载并作为 BASE64 编码文本进行传输,因此网络传输量很大。

  2. 与上述类似的设置,但不是将 mp3 存储在二进制属性中,而是将实体设为媒体资源条目,使其具有默认流值。这在这篇博文中有更详细的描述:http://blogs.msdn.com/b/astoriateam/archive/2010/08/04/data-services-streaming-provider-series-implementing-a-streaming-provider-part-1.aspxhttp://blogs.msdn.com/b/astoriateam/archive/2010/09/08/data-services-streaming-provider-series-part-2-accessing-a-media-resource-stream-from-the-client.aspx .

  3. 在最新的 CTP WCF DS 中也支持流属性。这与上面的 #2 类似,但单个实体可以有多个流,每个流都可以通过其名称访问。

要访问音频流的原始值,您可以使用 URL(取决于您用来公开流的方法):

  1. urltotheentity/MyBinaryProperty/$value

  2. urltotheentity/$值

  3. urltotheentity/StreamPropertyName/$value

请注意,在 #1 中,流的默认 MIME 类型将是应用程序/八位字节流,要更改它,您需要为属性(反射提供程序)或属性添加属性 MimeType 到该属性的 CSDL(EF供应商)。在 #2 和 #3 中,mime 类型是通过调用流提供者来确定的。

关于wcf - 可以使用 WCF 数据服务返回文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8660819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com