ASP.net/WCF Сервис Советы по обработке изображений - PullRequest
0 голосов
/ 03 мая 2011

Я хотел бы получить несколько советов о том, как подойти к задаче программирования.

Я создаю веб-сайт, который собирает данные с течением времени (пользователи вводят данные), а затем отображает пространственные карты (по запросу), созданные из этогоdata.

Каждый раз, когда пользователь вводит данные, я использую веб-сервис для хранения данных в базе данных SQL (используя ef4).

Решение, которое я имею сейчас, заключается в том, когда клиент запрашивает карту/ image, как мне вернуть им изображение.

Должен ли я:

  1. При вызове службы WCF создайте изображение и верните его через службу
  2. После вызова службы WCF создайте изображение, сохраните его где-нибудь на стороне сервера, верните путь или URI / URL к изображению

Я надеялся сделать (2), но я не уверен, гдесохранить изображение и какие последствия это имеет при попытке его раскрыть.

Приложение WebService и Asp.Net, скорее всего, будет запускаться с одного сервера, если это вообще поможет.

Любой советнабыло бы очень полезно узнать, как поступить, особенно такие детали, как, где можно безопасно сохранить службу WCF и т. д.

Спасибо.

(я пользуюсь службой, потому что будут другиеклиенты, кроме приложения Asp.Net, запрашивающие данные) .

Ответы [ 2 ]

1 голос
/ 03 мая 2011

Во многом это будет зависеть от того, какой API могут использовать ваши клиенты? Если им нужен SOAP API, то вы должны использовать либо службы WCF, либо asmx для предоставления изображений. Однако лучшей альтернативой, безусловно, является HTTP API, т. Е. Для доступа к конкретному изображению предоставляется уникальный URL-адрес - вы можете использовать URL-адрес в стиле REST или выбрать принятие параметров через строку запроса. По сути, URL должен содержать всю информацию, необходимую для извлечения изображения из базы данных.

Теперь вы можете напрямую выбирать службы WCF на основе REST для обслуживания этих образов или можете использовать обработчик HTTP на основе ASP.NET (как фасад) над службами WCF для их обслуживания. Если вы собираетесь использовать WCF, а размеры изображений велики, рассмотрите streaming . Я предпочитаю размещать фасад, так как это поможет вам перенести некоторые важные проблемы, такие как кэширование и потоковая передача за пределы мира WCF. Таким образом, в таком сценарии службы WCF будут использовать наилучшую возможную конечную точку для доставки данных изображения из хранилища данных. Ваш HTTP-обработчик фасада будет переводить URL-адрес в необходимый вызов службы WCF, получать данные изображения, кэшировать в файловую систему и обслуживать клиента. Последующие запросы будут обслуживаться через это кэшированное изображение. Поскольку вы используете URL-адреса и получаете запросы, изображения также будут кэшироваться на стороне клиента (вы можете контролировать это, испуская явные заголовки в вашем обработчике фасада). Как правило, запросы на получение изображения будут существенно выше, чем запросы на обновление данных - обслуживая запросы на получение с помощью другого обработчика, вы можете масштабировать его независимо от служб WCF.

0 голосов
/ 03 мая 2011

Я бы использовал обработчик HTTP, чтобы использовать вашу службу WCF на основе некоторых параметров.Я использую нечто подобное для извлечения изображения, хранящегося в виде BLOB-объекта в базе данных, и устанавливаю для изображения некоторые размеры по умолчанию.

Обработчик HTTP будет вызываться из тега изображения на странице asp.net.

Эта статья содержит дополнительную информацию о обработчиках http

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...