Ana Sayfa > C#, Programlama, VB.NET > Kısa Sınav – 8

Kısa Sınav – 8

11 Aralık 2009

Database işlemleri gerçekleştiren bir web service yazıyorsunuz. Faturalama ihtiyaçlarından dolayı, her kullanıcının web service’i kullanma miktarını hesaplamanız gerekiyor.

Kullanıcıların web service’e her erişmesiyle değeri 1 artırılacak session değişkeni kullanmayı planlıyorsunuz.

Web Method içerisinde session değişkeni kullanmadan önce ne yapılmalı?

  • WebMethod attribute’üne TransactionOption = TransactionOption.Supported eklenmeli
  • web.config dosyasına <sessionState mode=”InProc” /> eklenmeli
  • WebMethod attribute’üne EnableSession = true eklenmeli
  • WebMethod attribute’üne CacheDuration = 20 eklenmeli

Sorunun doğru cevabı için;

Doğru cevap; WebMethod attribute’üne EnableSession = true eklenmeli

EnableSession = true Web Method‘un session değişkenlerine erişebilmesini sağlar. Eğer bu parametreyi true yapmazsanız, session değişkenleri herzaman null (VB.NET’te Nothing) döndürecektir.

<sessionstate = “InProc” /> varsayılan konfigürasyondur. web.config dosyasında bu satırın bulunması session değşikenlerine erişim sağlamaz.

InProc değeri ile session değişkenlerinin, web sunucusunun hafızasında (Ram Bellek) bulundurulacağı belirtilmiş olur. Bu değeri SQL Server veya State Server değerleri ile değiştirebilirsiniz.

CacheDuration, cache mekanizmasını konfigüre eder, session ile alakalı değildir.

TransactionOption = TransactionOption.Supported, Transaction desteğini aktif hale getirir, session ile alakalı değildir.


İlgili diğer başlıklar:



  1. mahir ekici
    Aralık 28th, 2010 at 22:06 | #1

    Merhaba Engin Bey,

    Normal aspx sayfasında webmethod tanımladım. Session değerini alıyorum. IE8 de normal çalışıyor. Fakat Chrome ve Firefox‘ta çalışmıyor. Session null (null dönmemesi için “plugin/scripts/mybos.jpg;” stringini döndürdüm) dönüyor.

    Sayfanın header attribute’üne EnableSession = true ekledim. Fakat yine sonuç aynı,

    [WebMethod(EnableSession = true)]
    public static string goster()
    {
    	if (HttpContext.Current.Session["url"] != null)
    	{
    		string str = HttpContext.Current.Server.HtmlEncode(HttpContext.Current.Session["url"].ToString());
    		return str;
    	}
    	else
    	{
    		return "plugin/scripts/mybos.jpg";
    	}
    }