Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu öğreticide, Web API çerçevesini kendi kendine barındırmak için OWIN kullanarak bir konsol uygulamasında ASP.NET Web API'sini barındırma gösterilmektedir.
.NET için Açık Web Arabirimi (OWIN), .NET web sunucuları ve web uygulamaları arasında bir soyutlama tanımlar. OWIN, web uygulamasını sunucudan ayrıştırarak OWIN'in iis dışında kendi işleminizde bir web uygulaması barındırmak için ideal olmasını sağlar.
Öğreticide kullanılan yazılım sürümleri
- Visual Studio 2017
- Web API 5.2.7
Not
Bu öğreticinin kaynak kodunun tamamını github.com/aspnet/samples adresinde bulabilirsiniz.
Konsol uygulaması oluşturma
Dosya menüsünde Yeni'yi ve ardından Proje'yi seçin. Yüklü'denVisual C# altında Windows Masaüstü'nü ve ardından Konsol Uygulaması (.Net Framework)'ü seçin. Projeyi "OwinSelfhostSample" olarak adlandırın ve Tamam'ı seçin.
Web API'sini ve OWIN paketlerini ekleme
Araçlar menüsünde NuGet Paket Yöneticisi'ni ve ardından Paket Yöneticisi Konsolu'nu seçin. Paket Yöneticisi Konsolu penceresinde aşağıdaki komutu girin:
Install-Package Microsoft.AspNet.WebApi.OwinSelfHost
Bu, WebAPI OWIN selfhost paketini ve gerekli tüm OWIN paketlerini yükler.
Kendi kendine konak için Web API'sini yapılandırma
Çözüm Gezgini'da projeye sağ tıklayın ve Yeni sınıf eklemek içinSınıfEkle'yi / seçin. sınıfını Startup
adlandırın.
Bu dosyadaki tüm ortak kodu aşağıdakilerle değiştirin:
using Owin;
using System.Web.Http;
namespace OwinSelfhostSample
{
public class Startup
{
// This code configures Web API. The Startup class is specified as a type
// parameter in the WebApp.Start method.
public void Configuration(IAppBuilder appBuilder)
{
// Configure Web API for self-host.
HttpConfiguration config = new HttpConfiguration();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
appBuilder.UseWebApi(config);
}
}
}
Web API denetleyicisi ekleme
Ardından, bir Web API denetleyicisi sınıfı ekleyin. Çözüm Gezgini'da projeye sağ tıklayın ve Yeni sınıf eklemek içinSınıfEkle'yi / seçin. sınıfını ValuesController
adlandırın.
Bu dosyadaki tüm ortak kodu aşağıdakilerle değiştirin:
using System.Collections.Generic;
using System.Web.Http;
namespace OwinSelfhostSample
{
public class ValuesController : ApiController
{
// GET api/values
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
// GET api/values/5
public string Get(int id)
{
return "value";
}
// POST api/values
public void Post([FromBody]string value)
{
}
// PUT api/values/5
public void Put(int id, [FromBody]string value)
{
}
// DELETE api/values/5
public void Delete(int id)
{
}
}
}
OWIN Konağı'nı başlatın ve HttpClient ile istekte bulunın
Program.cs dosyasındaki tüm ortak kodu aşağıdakilerle değiştirin:
using Microsoft.Owin.Hosting;
using System;
using System.Net.Http;
namespace OwinSelfhostSample
{
public class Program
{
static void Main()
{
string baseAddress = "http://localhost:9000/";
// Start OWIN host
using (WebApp.Start<Startup>(url: baseAddress))
{
// Create HttpClient and make a request to api/values
HttpClient client = new HttpClient();
var response = client.GetAsync(baseAddress + "api/values").Result;
Console.WriteLine(response);
Console.WriteLine(response.Content.ReadAsStringAsync().Result);
Console.ReadLine();
}
}
}
}
Uygulamayı çalıştırma
Uygulamayı çalıştırmak için Visual Studio'da F5 tuşuna basın. Çıktı aşağıdaki gibi görünmelidir:
StatusCode: 200, ReasonPhrase: 'OK', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
Date: Tue, 09 Jul 2013 18:10:15 GMT
Server: Microsoft-HTTPAPI/2.0
Content-Length: 19
Content-Type: application/json; charset=utf-8
}
["value1","value2"]