AppFabric Cache ile ilgilendiğinizde gördüğünüz ilk şeylerden birisi kurulumunu ve yapılandırmasını PowerShell üzerinden yapabilmenizdir. AppFabric Cache yönetimsel araçlarını kurarak erişebileceğiniz bu yapılandırma cmdlet’leri sayesinde gerek yerel gerekse de uzak sunucularınızda ihtiyacınız olan her türlü önbellek işlemini yapabilirsiniz.

Zamanla, yaptığınız bu yönetimsel işleri programsal olarak yapmak isteyebilirsiniz ya da iş mantığınız gereği önbellekte bulunacak verileri en baştan atmak isteyebilirsiniz. Her ne kadar bu gibi şeyleri yazacağınız PowerShell cmdlet’leri ile yapabiliyor olsanız da (burada ve burada örneklerini bulabileceğiniz gibi) bu işi programsal olarak yapmak en az benim kadar sizin de hoşunuza gidecektir.

İşe öncelikle PowerShell komutlarını çalıştırabileceğimiz ortamı hazırlamakla başlamalıyız. Bunun için, şimdiye kadar yapmadıysanız eğer, PowerShell v2 SDK’sını indirerek bilgisayarınıza kurmalısınız.

var initialSessionState = InitialSessionState.CreateDefault();
initialSessionState.ThrowOnRunspaceOpenError = true;

runspace = RunspaceFactory.CreateRunspace(initialSessionState);

runspace.Open();

Yukarıdaki kod bize PowerShell komutlarımızı çalıştırabileceğimiz bir ortam sağlayacaktır. Ardından komutlarımızı vereceğimiz bir PipeLine oluşturmalıyız;

var pipeline = runspace.CreatePipeline();

Nerdeyse programımız bitmek üzere, aynı yeni bir PowerShell komut satırında olduğu gibi önbellekte çalıştırılacak komutlarınızı pipeline’a geçmemiz gerekli;

pipeline.Commands.Add(new Command("Use-CacheCluster"));
pipeline.Commands.Add(new Command("Get-CacheHost"));

Get-CacheHost komutu bize önbellek sunucumuz hakkında bilgiler verecektir. Yukarıda ardıl olarak sıralamış olduğumuz komutlar pipeline üzerindeki invoke metodu ile çalıştırabiliriz;

var result = pipeline.Invoke();

Bu noktada result nesnesi, içerisinde sunucu hakkındaki adı, port numarası, servis adı, sürümü  ve durumu gibi bilgileri barındıran HostInfo (Microsoft.ApplicationServer.Caching.AdminApi.HostInfo) türündendir.

Son bir dokunuşla kodumuza önbellek komutlarını çalıştırmak için gerekli olan DistributedCacheAdministration modülünün yüklenmesinide ekleyecek olursak işimizi tamamlayabiliriz;

var initialSessionState = InitialSessionState.CreateDefault();
initialSessionState.ImportPSModule(new[] { "DistributedCacheAdministration" });
initialSessionState.ThrowOnRunspaceOpenError = true;

runspace = RunspaceFactory.CreateRunspace(initialSessionState);

runspace.Open();

var pipeline = runspace.CreatePipeline();
pipeline.Commands.Add(new Command("Use-CacheCluster"));
pipeline.Commands.Add(new Command("Get-CacheHost"));
var result = pipeline.Invoke();

var hostInfo = (HostInfo)result[0].BaseObject;

Console.Out.WriteLine("Sunucu Adı        : " + hostInfo.HostName);
Console.Out.WriteLine("Sunucu Portu      : " + hostInfo.PortNo);
Console.Out.WriteLine("Sunucu Servis Adı : " + hostInfo.ServiceName);
Console.Out.WriteLine("Sunucu Durumu     : " + hostInfo.Status);
Console.Out.WriteLine("Sunucu Sürümü     : " + hostInfo.VersionInfo);

Yukarıdaki kodun çalışabilmesi için aşağıdaki assembly’lerin referanslarınızda olması gerekli;

  • Microsoft.ApplicationServer.Caching.Client
  • Microsoft.ApplicationServer.Caching.Core
  • Microsoft.ApplicationServer.Caching.Management
  • System.Management.Automation

 

Not 1 : 64-bit bir işletim sistemi üzerinde çalışıyorsanız. AppFabric Cache referanslarını eklenmesi ile ilgili makalemi okumanızı tavsiye ederim.

Not 2 : Yukarıdaki kodu Visual Studio 2010 ve .Net framework 4.0 ile derlemeye çalışıyorsanız hedef framework’ünüzün “.Net Framework 4 Client Profile” değil “.Net Framework 4” olduğunu kontrol edin.

Şu Yazıları da Sevebilirsiniz

Leave a Comment

* Bu formu kullanarak, verilerinizin bu web sitesi tarafından saklanması ve kullanılmasını kabul ediyorsunuz.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Bu web sitesi deneyiminizi geliştirmek için çerezleri kullanır. Bunu kabul ettiğinizi varsayacağız, ancak isterseniz vazgeçebilirsiniz. Kabul Et Daha Fazla Bilgi