Sharepoint Exception: Trying to use an SPWeb object that has been closed or disposed and is no longer valid.

When I created sharepoint webpart and Used


using (SPSite site = new SPSite("http://Server:port/sites/Site/"))
{
using (SPWeb web = site.OpenWeb())
{
//Some Code Here.
}
}

It worked fine but before deploying I changed new SPSite(“http://Server:port/sites/Site/”) to SPContext.Current.Site and it started throwing the above exception on the Error Page but while debugging there was no Exception.

Weird issue and I don’t have any explaination for it but what helpd me solving the issue was the fact when we are passing Url to the SPSite it works fine.

So on the same lines I used SPContext.Current.Web.Url to fetch the Url of current siteand It worked like a charm.

So instead of above if we use


using (SPSite site = new SPSite(SPContext.Current.Web.Url))
{
using (SPWeb web = site.OpenWeb())
{
//Some Code Here.
}
}

it works. 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *