What is equivalent to HttpServiceHost in ASP.NET WebAPI?

I wanted to try this example of a standalone web service (originally written in WCF WebApi), but using the new ASP.NET WebAPI (which is a descendant of WCF WebApi).

using System; using System.Net.Http; using System.ServiceModel; using System.ServiceModel.Web; using System.Text; using Microsoft.ApplicationServer.Http; namespace SampleApi { class Program { static void Main(string[] args) { var host = new HttpServiceHost(typeof (ApiService), "http://localhost:9000"); host.Open(); Console.WriteLine("Browse to http://localhost:9000"); Console.Read(); } } [ServiceContract] public class ApiService { [WebGet(UriTemplate = "")] public HttpResponseMessage GetHome() { return new HttpResponseMessage() { Content = new StringContent("Welcome Home", Encoding.UTF8, "text/plain") }; } } } 

However, I don’t have NuGotten the package I need, or HttpServiceHost is AWOL. (I chose the option of "own hosting").

What am I missing?

+7
source share
1 answer

Please refer to this article for self-hosting:

Self-Host Web API (C #)

The complete rewritten code for your example would be:

 class Program { static void Main(string[] args) { var config = new HttpSelfHostConfiguration("http://localhost:9000"); config.Routes.MapHttpRoute( "API Default", "api/{controller}/{id}", new { id = RouteParameter.Optional } ); using (HttpSelfHostServer server = new HttpSelfHostServer(config)) { server.OpenAsync().Wait(); Console.WriteLine("Browse to http://localhost:9000/api/service"); Console.WriteLine("Press Enter to quit."); Console.ReadLine(); } } } public class ServiceController : ApiController { public HttpResponseMessage GetHome() { return new HttpResponseMessage() { Content = new StringContent("Welcome Home", Encoding.UTF8, "text/plain") }; } } 

Hope this helps.

+10
source

All Articles