2012-02-21 1 views
3

У меня есть уже существующий набор однопользовательских служб WCF. Это длительные процессы, которые много работают на постоянной основе и предоставляют контракты на обслуживание WCF для связи с другими процессами.ASP.Net Web API vs WCF - Может ли веб-API использоваться для предоставления связи на основе REST с однопользовательской службой WCF?

Когда разрабатывался веб-API WCF, я был взволнован, потому что это выглядело так, будто я, наконец, смог покончить со всеми неприятными материалами контракта и просто предоставить API-интерфейс REST API для каждого сервиса и процессы взаимодействуют через HTTP-запросы и ответы JSON.

Теперь похоже, что веб-интерфейс стал функцией ASP.Net, поддерживающей IIS, и я попытался выяснить, не хватает ли я чего-то или если у моих служб WCF больше нет возможности предоставить REST интерфейс.

Если веб-API больше не нацелен на мой сценарий, то какая команда ASP.Net предвидится в отношении не оканчивающихся однопользовательских процессов, которые хотят предоставить API на основе HTTP/JSON для других процессов-потребителей?

ответ

5

Вам не нужно размещать службы ASP.NET Web API в IIS. Существует опция «Self Hosting», которая позволит вам разместить ваши службы API в другом процессе (например, службе Windows), если хотите. Я предполагаю, что ваша нынешняя архитектура будет работать отлично, как самостоятельное приложение.

+1

Точно, что я искал, спасибо! –

+0

Спасибо за обмен! ['HttpSelfHostServer'] (http://msdn.microsoft.com/en-us/library/system.web.http.selfhost.httpselfhostserver%28v=vs.108%29.aspx) находится в бета-версии [ MVC 4 Web API] (http://www.asp.net/web-api). – SliverNinja

1

Вы можете самостоятельно использовать ServiceHost как в this MSDN example. См. related SO post. По сути - IIS не является требованием для хоста WCF.

Если вы используете webHttpBinding - вам просто нужно создать WebServiceHost, который простирается от ServiceHost до поддержки REST.

+0

Отличные ссылки, спасибо –