OWIN ve Katana ile Çalışmaya Başlama
.NET için Açık Web Arabirimi (OWIN), .NET web sunucuları ve web uygulamaları arasında bir soyutlama tanımlar. Web sunucusunu uygulamadan ayıran OWIN, .NET web geliştirmesi için ara yazılım oluşturmayı kolaylaştırır. Ayrıca, OWIN web uygulamalarını diğer konaklara taşımayı kolaylaştırır; örneğin, bir Windows hizmetinde veya başka bir işlemde kendi kendine barındırma.
OWIN bir uygulama değil, topluluğa ait bir belirtimdir. Katana projesi, Microsoft tarafından geliştirilen bir açık kaynak OWIN bileşenleri kümesidir. OWIN ve Katana'ya genel bir genel bakış için bkz. Project Katana'ya Genel Bakış. Bu makalede, başlamak için doğrudan koda atlayacağım.
Bu öğreticide Visual Studio 2013 Sürüm Adayı kullanılır, ancak Visual Studio 2012'yi de kullanabilirsiniz. Visual Studio 2012'de aşağıdaki adımlardan birkaçı farklıdır.
IIS'de OWIN barındırma
Bu bölümde, OWIN'i IIS'de barındıracağız. Bu seçenek, IIS'nin olgun özellik kümesiyle birlikte bir OWIN işlem hattının esnekliğini ve bir araya getirilebilirliğini sağlar. Bu seçeneği kullanarak OWIN uygulaması ASP.NET istek işlem hattında çalışır.
İlk olarak, yeni bir ASP.NET Web Uygulaması projesi oluşturun. (Visual Studio 2012'de Boş Web Uygulaması proje türünü ASP.NET kullanın.)
Yeni ASP.NET Projesi iletişim kutusunda Boş şablonu seçin.
NuGet Paketleri Ekleme
Ardından gerekli NuGet paketlerini ekleyin. 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 yazın:
install-package Microsoft.Owin.Host.SystemWeb –Pre
Başlangıç Sınıfı Ekleme
Ardından bir OWIN başlangıç sınıfı ekleyin. Çözüm Gezgini'da projeye sağ tıklayın ve Ekle'yi ve ardından Yeni Öğe'yi seçin. Yeni Öğe Ekle iletişim kutusunda Owin Başlangıç sınıfı'nı seçin. Başlangıç sınıfını yapılandırma hakkında daha fazla bilgi için bkz. OWIN Başlangıç Sınıfı Algılama.
Startup1.Configuration
yöntemine aşağıdaki kodu ekleyin:
public void Configuration(IAppBuilder app)
{
// New code:
app.Run(context =>
{
context.Response.ContentType = "text/plain";
return context.Response.WriteAsync("Hello, world.");
});
}
Bu kod, Microsoft.Owin.IOwinContext örneğini alan bir işlev olarak uygulanan OWIN işlem hattına basit bir ara yazılım ekler. Sunucu bir HTTP isteği aldığında, OWIN işlem hattı ara yazılımı çağırır. Ara yazılım yanıt için içerik türünü ayarlar ve yanıt gövdesini yazar.
Not
OWIN Başlangıç sınıfı şablonu Visual Studio 2013'de kullanılabilir. Visual Studio 2012 kullanıyorsanız, adlı Startup1
yeni bir boş sınıf ekleyin ve aşağıdaki kodu yapıştırın:
using System;
using System.Threading.Tasks;
using Microsoft.Owin;
using Owin;
[assembly: OwinStartup(typeof(OwinApp.Startup1))]
namespace OwinApp
{
public class Startup1
{
public void Configuration(IAppBuilder app)
{
app.Run(context =>
{
context.Response.ContentType = "text/plain";
return context.Response.WriteAsync("Hello, world.");
});
}
}
}
Uygulamayı Çalıştırma
Hata ayıklamaya başlamak için F5 tuşuna basın. Visual Studio, için http://localhost:*port*/
bir tarayıcı penceresi açar. Sayfa aşağıdaki gibi görünmelidir:
Konsol Uygulamasında OWIN Self-Host
Bu uygulamayı IIS barındırmadan özel bir işlemde kendi kendine barındırmaya dönüştürmek kolaydır. IIS barındırma ile IIS, hem HTTP sunucusu hem de hizmeti barındıran işlem olarak davranır. Kendi kendine barındırma ile uygulamanız işlemi oluşturur ve HTTP sunucusu olarak HttpListener sınıfını kullanır.
Visual Studio'da yeni bir konsol uygulaması oluşturun. Paket Yöneticisi Konsolu penceresinde aşağıdaki komutu yazın:
Install-Package Microsoft.Owin.SelfHost -Pre
Bu öğreticinin 1. bölümünden projeye bir Startup1
sınıf ekleyin. Bu sınıfı değiştirmeniz gerekmez.
Uygulamanın Main
yöntemini aşağıdaki gibi uygulayın.
class Program
{
static void Main(string[] args)
{
using (Microsoft.Owin.Hosting.WebApp.Start<Startup1>("http://localhost:9000"))
{
Console.WriteLine("Press [enter] to quit...");
Console.ReadLine();
}
}
}
Konsol uygulamasını çalıştırdığınızda, sunucu dinlemeye http://localhost:9000
başlar. Bu adrese bir web tarayıcısında giderseniz "Merhaba dünya" sayfasını görürsünüz.
OWIN Tanılaması Ekleme
Microsoft.Owin.Diagnostics paketi, işlenmeyen özel durumları yakalayan ve hata ayrıntılarını içeren bir HTML sayfası görüntüleyen ara yazılım içerir. Bu sayfa, bazen "sarı ölüm ekranı" (YSOD) olarak adlandırılan ASP.NET hata sayfası gibi çalışır. YSOD gibi Katana hata sayfası da geliştirme sırasında kullanışlıdır, ancak üretim modunda devre dışı bırakmak iyi bir uygulamadır.
Tanılama paketini projenize yüklemek için Paket Yöneticisi Konsolu penceresine aşağıdaki komutu yazın:
install-package Microsoft.Owin.Diagnostics –Pre
Yönteminizdeki Startup1.Configuration
kodu aşağıdaki gibi değiştirin:
public void Configuration(IAppBuilder app)
{
// New code: Add the error page middleware to the pipeline.
app.UseErrorPage();
app.Run(context =>
{
// New code: Throw an exception for this URI path.
if (context.Request.Path.Equals(new PathString("/fail")))
{
throw new Exception("Random exception");
}
context.Response.ContentType = "text/plain";
return context.Response.WriteAsync("Hello, world.");
});
}
Şimdi CTRL+F5 tuşlarını kullanarak uygulamayı hata ayıklamadan çalıştırın, böylece Visual Studio özel durumda bozulmaz. Uygulama, konumuna http://localhost/fail
gelene kadar öncekiyle aynı şekilde davranır ve bu noktada uygulama özel durum oluşturur. Hata sayfası ara yazılımı özel durumu yakalar ve hata hakkında bilgi içeren bir HTML sayfası görüntüler. Yığın, sorgu dizesi, tanımlama bilgileri, istek üst bilgisi ve OWIN ortam değişkenlerini görmek için sekmelere tıklayabilirsiniz.
Sonraki Adımlar
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin