2

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

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

.../api/firmware_2_0

我的 Web 服务客户端可以“获取”。

这可能吗,我可以做谁。

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

4

1 回答 1

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);
}

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

于 2012-09-08T18:12:53.530 回答