Barındırma hizmetleri

Bir hizmetin etkin olması için, hizmeti oluşturan ve bağlamını ve ömrünü denetleen bir çalışma zamanı ortamında barındırılması gerekir. Windows Communication Foundation (WCF) hizmetleri, yönetilen kodu destekleyen herhangi bir Windows işleminde çalışacak şekilde tasarlanmıştır.

WCF, hizmet odaklı uygulamalar oluşturmaya yönelik birleşik bir programlama modeli sağlar. Bu programlama modeli tutarlı kalır ve hizmetin dağıtıldığı çalışma zamanı ortamından bağımsızdır. Uygulamada bu, hizmetlerinizin kodunun barındırma seçeneği ne olursa olsun çok aynı göründüğü anlamına gelir.

Bu barındırma seçenekleri, bir konsol uygulamasının içinde çalıştırılandan, Internet Information Services (IIS) veya Windows İşlem Etkinleştirme Hizmeti (WAS) tarafından yönetilen bir çalışan işlemi içinde çalışan bir Windows hizmeti gibi sunucu ortamlarına kadar değişir. Geliştiriciler, hizmetin dağıtım gereksinimlerini karşılayan barındırma ortamını seçer. Bu gereksinimler, uygulamanın dağıtıldığı platformdan, ileti gönderip alması gereken aktarımdan ya da yeterli kullanılabilirliği sağlamak için gereken işlem geri dönüştürme türüne ve diğer işlem yönetimine ya da diğer bazı yönetim veya güvenilirlik gereksinimlerine göre türetilebilir. Sonraki bölümde barındırma seçenekleri hakkında bilgi ve rehberlik sağlanır.

Hosting seçenekleri

Yönetilen Uygulamada Kendi Kendine Konak Oluşturma

WCF hizmetleri herhangi bir yönetilen uygulamada barındırılabilir. Dağıtmak için en az altyapı gerektirdiğinden bu en esnek seçenektir. Hizmetin kodunu yönetilen uygulama kodunun içine ekler ve ardından hizmetin kullanılabilir olmasını sağlamak için öğesinin ServiceHost bir örneğini oluşturup açarsınız. Daha fazla bilgi için bkz . Nasıl yapılır: Yönetilen Uygulamada WCF Hizmeti Barındırma.

Bu seçenek iki yaygın senaryoyu etkinleştirir: konsol uygulamaları içinde çalışan WCF hizmetleri ve Windows Presentation Foundation (WPF) veya Windows Forms (WinForms) tabanlı uygulamalar gibi zengin istemci uygulamaları. WcF hizmetini bir konsol uygulamasının içinde barındırmak genellikle uygulamanın geliştirme aşamasında yararlıdır. Bu, hata ayıklamayı, uygulamanın içinde neler olduğunu öğrenmek için izleme bilgilerini almayı ve bunları yeni konumlara kopyalayarak gezinmeyi kolaylaştırır. Bu barındırma seçeneği WPF ve WinForms uygulamaları gibi zengin istemci uygulamalarının dış dünyayla iletişim kurmasını da kolaylaştırır. Örneğin, kullanıcı arabirimi için WPF kullanan ve aynı zamanda diğer istemcilerin buna bağlanmasına ve bilgi paylaşmasına olanak tanıyan bir WCF hizmetini barındıran eşler arası işbirliği istemcisi.

Yönetilen Windows Hizmetleri

Bu barındırma seçeneği, bir WCF hizmetini barındıran uygulama etki alanını (AppDomain) yönetilen Windows Hizmeti (eski adı nt hizmeti) olarak kaydetmeyi içerir, böylece hizmetin işlem ömrü Windows hizmetleri için hizmet denetim yöneticisi (SCM) tarafından denetlenır. Kendi kendine barındırma seçeneği gibi, bu barındırma ortamı türü de bazı barındırma kodlarının uygulamanın bir parçası olarak yazıldığını gerektirir. Hizmet, hem bir Windows Hizmeti hem de WCF hizmeti olarak uygulanarak hem sınıfından ServiceBase hem de WCF hizmet sözleşmesi arabiriminden devralınmasına neden olur. ServiceHost daha sonra geçersiz kılınan OnStart(String[]) bir yöntem içinde oluşturulur ve açılır ve geçersiz kılınan bir yöntem içinde kapatılırOnStop(). Programın Installutil.exe aracı tarafından Bir Windows Hizmeti olarak yüklenmesine izin vermek için öğesinden Installer devralan bir yükleyici sınıfı da uygulanmalıdır. Daha fazla bilgi için bkz . Nasıl yapılır: Yönetilen Windows Hizmetinde WCF Hizmeti Barındırma. Yönetilen Windows Hizmeti barındırma seçeneğinin etkinleştirdiği senaryo, iletinin etkinleştirilmediği güvenli bir ortamda IIS dışında barındırılan uzun süre çalışan bir WCF hizmetidir. Hizmetin kullanım ömrü işletim sistemi tarafından denetlenır. Bu barındırma seçeneği Windows'un tüm sürümlerinde kullanılabilir.

Internet Information Services (IIS)

IIS barındırma seçeneği ASP.NET ile tümleşiktir ve bu teknolojilerin sunduğu işlem geri dönüşümü, boşta kapatma, işlem durumu izleme ve ileti tabanlı etkinleştirme gibi özellikleri kullanır. Windows XP ve Windows Server 2003 işletim sistemlerinde bu, yüksek oranda kullanılabilir ve yüksek oranda ölçeklenebilir olması gereken Web hizmeti uygulamalarını barındırmak için tercih edilen çözümdür. IIS ayrıca müşterilerin kurumsal sınıf bir sunucu ürününden beklediği tümleşik yönetilebilirlik sunar. Bu barındırma seçeneği IIS'nin düzgün yapılandırılmasını gerektirir, ancak uygulamanın bir parçası olarak herhangi bir barındırma kodunun yazılması gerekmez. WCF hizmeti için IIS barındırmayı yapılandırma hakkında daha fazla bilgi için bkz . Nasıl yapılır: IIS'de WCF Hizmeti Barındırma.

IIS tarafından barındırılan hizmetler yalnızca HTTP aktarımını kullanabilir. IIS 5.1'deki uygulaması Windows XP'de bazı sınırlamalar getirmiştir. Windows XP'de IIS 5.1 tarafından wcf hizmeti için sağlanan ileti tabanlı etkinleştirme, aynı bilgisayardaki diğer şirket içinde barındırılan WCF hizmetinin iletişim kurmak için 80 numaralı bağlantı noktasını kullanmasını engeller. WCF hizmetleri, Windows Server 2003'te IIS 6.0 tarafından barındırıldığında diğer uygulamalarla aynı AppDomain/Uygulama Havuzu/Çalışan İşlemi'nde çalıştırılabilir. Ancak WCF ve IIS 6.0'ın her ikisi de çekirdek modu HTTP yığınını (HTTP.sys) kullandığından IIS 6.0, IIS 5.1'in aksine 80 numaralı bağlantı noktasını aynı makinede çalışan diğer şirket içinde barındırılan WCF hizmetleriyle paylaşabilir.

Windows İşlem Etkinleştirme Hizmeti (WAS)

Windows İşlem Etkinleştirme Hizmeti (WAS), Windows Vista'da da kullanılabilen Windows Server 2008 için yeni işlem etkinleştirme mekanizmasıdır. Tanıdık IIS 6.0 işlem modelini (uygulama havuzları ve ileti tabanlı işlem etkinleştirmesi) ve barındırma özelliklerini (hızlı hata koruması, sistem durumu izleme ve geri dönüşüm gibi) korur, ancak etkinleştirme mimarisinden HTTP bağımlılığını kaldırır. IIS 7.0, HTTP üzerinden ileti tabanlı etkinleştirme gerçekleştirmek için WAS kullanır. Ek WCF bileşenleri, WCF'nin desteklediği TCP, MSMQ ve adlandırılmış kanallar gibi diğer protokoller üzerinden ileti tabanlı etkinleştirme sağlamak için WAS'ye de bağlanır. Bu, iletişim protokollerini kullanan uygulamaların işlem geri dönüşümü, hızlı hata koruması ve yalnızca HTTP tabanlı uygulamalar tarafından kullanılabilen ortak yapılandırma sistemi gibi IIS özelliklerini kullanmasına olanak tanır.

Bu barındırma seçeneği WAS'nin düzgün yapılandırılmasını gerektirir, ancak uygulamanın bir parçası olarak herhangi bir barındırma kodu yazmanızı gerektirmez. WAS barındırmayı yapılandırma hakkında daha fazla bilgi için bkz . How to: Host a WCF Service in WAS.

Barındırma Ortamı Seçin

Aşağıdaki tabloda, barındırma seçeneklerinin her biriyle ilişkili bazı temel avantajlar ve senaryolar özetlenmiştir.

Barındırma Ortamı Genel Senaryolar Önemli Avantajlar ve Sınırlamalar
Yönetilen Uygulama ("Şirket İçinde Barındırılan") - Geliştirme sırasında kullanılan konsol uygulamaları.
- Hizmetlere erişen zengin WinForm ve WPF istemci uygulamaları.
-Esnek.
- Dağıtımı kolaydır.
- Hizmetler için kurumsal bir çözüm değildir.
Windows Hizmetleri (eski adıyla NT hizmetleri) - IIS dışında barındırılan uzun süre çalışan bir WCF hizmeti. - hizmet süreci yaşam süresi, ileti etkin değil, işletim sistemi tarafından denetlendi.
- Windows'un tüm sürümleri tarafından desteklenir.
- Güvenli ortam.
IIS 5.1, IIS 6.0 - HTTP protokolunu kullanarak İnternet'te ASP.NET içerikle bir WCF hizmetini yan yana çalıştırma. - İşlem geri dönüşümü.
- Boşta kapatma.
- İşlem durumu izleme.
- İleti tabanlı etkinleştirme.
- Yalnızca HTTP.
Windows İşlem Etkinleştirme Hizmeti (WAS) - Çeşitli aktarım protokollerini kullanarak İnternet'e IIS yüklemeden bir WCF hizmeti çalıştırma. - IIS gerekli değildir.
- İşlem geri dönüşümü.
- Boşta kapatma.
- İşlem durumu izleme.
- İleti tabanlı etkinleştirme.
- HTTP, TCP, adlandırılmış kanallar ve MSMQ ile çalışır.
IIS 7.0 - ASP.NET içeriği olan bir WCF hizmeti çalıştırma.
- Çeşitli aktarım protokollerini kullanarak İnternet'te bir WCF hizmeti çalıştırma.
- WAS avantajları.
- ASP.NET ve IIS içeriğiyle tümleştirilmiş.

Barındırma ortamının seçimi, dağıtıldığı Windows sürümüne, ileti göndermesi için gereken aktarımlara ve gerektirdiği işlem ve uygulama etki alanı geri dönüştürme türüne bağlıdır. Aşağıdaki tabloda bu gereksinimlerle ilgili veriler özetlemektedir.

Barındırma Ortamı Platform Kullanılabilirliği Desteklenen Aktarımlar İşlem ve AppDomain Geri Dönüşümü
Yönetilen Uygulamalar ("Şirket İçinde Barındırılan") Windows XP, Windows Server 2003, Windows Vista,

Windows Server 2008
HTTP,

Net.tcp

Pipe

net.msmq
Hayır
Windows Hizmetleri (eski adıyla NT hizmetleri) Windows XP, Windows Server 2003, Windows Vista,

Windows Server 2008
HTTP,

Net.tcp

Pipe

net.msmq
Hayır
IIS 5.1 Windows XP HTTP Yes
IIS 6.0 Windows Server 2003 HTTP Yes
Windows İşlem Etkinleştirme Hizmeti (WAS) Windows Vista, Windows Server 2008 HTTP,

Net.tcp

Pipe

net.msmq
Yes

Bir hizmetin veya güvenilmeyen bir konaktan herhangi bir uzantının çalıştırılmasının güvenliği tehlikeye attığını unutmayın. Ayrıca, kimliğe bürünme altında bir ServiceHost açarken, bir uygulama kullanıcının oturumunu kapatmadığından emin olmalıdır, örneğin kullanıcının önbelleğe alarak WindowsIdentity .

Ayrıca bkz.