Merhaba arkadaşlar bugün sizlere yazmış olduğunuz webpart uygulamasında alacağınız “Trying to use an SPWeb object that has been closed or disposed and is no longer valid.” hatasından ve bu hatanın çözümünden bahsedeceğim.
Bu hata sadece SPWeb için değil aynı zamanda SPSite içinde verebilmektedir.
Yukarıdaki gibi bir hata ekranı ile karşılaşmanız durumunda kod tarafında ufak bir güncelleme ile bu sorunu çözebilirsiniz.
Bu hatasının sebebi ise kod tarafında SPSite ya da SPWeb kısımlarını using ile kullanmanızdan kaynaklı bir hatadır. Using ile kullandığınız zaman bu değişkenler asla iptal edilmiyor ve bir sonraki web bölümüne geçiyorlar. Ama sharepoint bunları iptal etmek istediği için ve edilemediği içinde hata vermektedir.
Kod tarafında ise
1 2 3 4 |
using (SPSite site = SPContext.Current.Site) { } |
kısmını
1 |
SPSite site = SPContext.Current.Site; |
olacak şekilde ve
1 2 3 4 |
using (SPWeb web = SPContext.Current.Site.OpenWeb()) { } |
kısmını da
1 |
SPWeb web = SPContext.Current.Site.OpenWeb(); |
olacak şekilde revize edilmesi gerekmektedir.
İlk Yorumu Siz Yapın