如何在.Net Restful Web服务中公开二进制文件?

Dav*_*hel 2 .net rest wcf

是否可以通过.net(WCF)Rest Full Web服务公开二进制文件.

我想在我的网络服务器上有一个二进制文件,它可以作为休息资源使用

.../API/firmware_2_0

我的Web服务客户端可以"获取".

这是可能的,我可以做谁.

我熟悉使用Restful Web服务来提供来自数据库的数据的JSON表示,但不是二进制文件.

kd8*_*azz 7

虽然我同意在大多数情况下IIS应该用于提供文件,但在某些情况下,您实际上希望通过RESTful WCF服务公开原始二进制文件.

来自http://blogs.msdn.com/b/carlosfigueira/archive/2008/04/17/wcf-raw-programming-model-web.aspx,

[OperationContract]
[WebGet(UriTemplate = "?url={uri}")]
public Stream GetBinary(string uri)
{
    var binary = new byte[0]; // some sort of query
    var mimeType = ""; // some sort of query
    WebOperationContext.Current.OutgoingResponse.ContentType = mimeType;
    return new MemoryStream(binary);
}
Run Code Online (Sandbox Code Playgroud)

现在意识到,这样做完全绕过了WCF的格式化.因此,没有任何xml/json包装.