2011-05-03 61 views
0

我想就如何处理编程任务提供一些建议。ASP.net/WCF服务图像处理建议

我正在创建一个网站,收集数据随着时间的推移(用户输入数据),然后显示空间地图(根据请求)从数据创建。

每次用户输入数据时,我都使用webservice将数据存储到SQL数据库(使用ef4)。

我现在的设计决策是当客户端请求地图/图像时,我应该如何将图像返回给他们。

我应该:

  1. 在调用WCF服务构建 的图像,并通过 服务
  2. 返回图像在调用WCF服务构建 的形象,店面 它的服务器端的某个地方,返回路径 或图像的URI/URL

我曾希望做(2),但我不确定在哪里可以节省e图像以及试图揭示它的含义。

WebService和Asp.Net应用程序很可能会从相同的服务器运行,如果有帮助的话。

如何进行的任何建议,将最赞赏,尤其是细节,如它是安全的,从WCF服务等

由于保存。

(我正在使用一项服务,因为除Asp.Net应用程序以外,还有其他客户端请求数据)

回答

0

我会根据一些参数使用HTTP处理程序来使用您的WCF服务。我使用类似的东西来检索数据库中存储为BLOB的图像,并在图像上设置一些默认大小。

HTTP处理程序将从asp.net页面上的图像标签调用。

This article对HTTP处理程序的更多信息

1

这将在很大程度上取决于什么样的API的客户可以消耗?如果他们需要SOAP API,则必须使用WCF服务或asmx来提供图像。然而,更好的选择显然是HTTP API,即为访问特定图像提供了一个唯一的URL--您可以使用REST风格的URL或者可以选择通过查询字符串接受参数。本质上,URL应该具有从数据库检索图像所需的全部信息。

现在,您可以直接选择基于REST的WCF服务来提供这些图像,或者可以将基于ASP.NET的HTTP处理程序(作为外观)通过WCF服务提供给它们。如果您打算使用WCF并且图像尺寸很大,那么请考虑streaming。我更愿意推荐一个外观,因为它可以帮助您在WCF世界之外移动一些重要的问题,如缓存和流式传输。所以在这种情况下,WCF服务将使用可能的最佳端点从数据存储提供图像数据。您的外观HTTP处理程序将转换必要的WCF服务调用中的url,获取图像数据,缓存到文件系统并提供给客户端。随后的请求将通过此缓存图像提供。由于您使用URL并获取请求,因此图像也会在客户端缓存(您可以通过在门面处理程序中发出明确的标题来控制此图像)。通常,获取图像的请求将比请求更新数据高很多 - 通过通过不同的处理程序提供获取请求,您可以独立于WCF服务进行扩展。