Yukarıdaki çizimde de görüleceği üzere http://sps2010 sitemde bulunan webpartdan http://sps2010/sites/mavi sitemde bulunan listeye bağlanıp Müşterileri çekmek istemekteyim ancak Mavi adlı siteme bağlanamamakte ve "Web at http://sps2010/sites/mavi/ could not be found." hatası vermektedir.Bağlantıyı sağlayamayan örnek kod aşağıdaki gibidir:
Dikkat edilmesi gereken nokta kodun en üst ve en alt satırında da görüldüğü üzere CurrentContext'i bağlantı yapılmadan önce tutmak ve işimiz bittikten sonra tekrar atamak.
SPMetal ile Entity kodumu Mavi adlı siteden çıkarttım bunun sebebi de Müşteriler listemin orada bulunmasından dolayıdır.
Ancak HttpContext'i bağlanmak istediğimiz siteye set ettikten sonra herhangi bir sorun yaşamamakta ve Müşterileri listeleyebilmekteyim.Bağlantıyı sağlayan örnek kod aşağıdaki gibidir:
using (EntitiesSps2010Mavi.EntitiesSps2010MaviDataContext dataContext = new EntitiesSps2010Mavi.EntitiesSps2010MaviDataContext("http://sps2010/sites/mavi/"))
{
var musteriler = from musteriListesi in dataContext.Musteriler
orderby musteriListesi.Title
select musteriListesi;
if (musteriler != null)
{
lvMusteriler.DataSource = musteriler.ToList();
lvMusteriler.DataBind();
}
}
Mavi adlı siteme bağlantıyı gerçekleştirip Context'i değiştirdikten sonra bir sorunla karşılaşmadım.HttpContext currentContext = HttpContext.Current;
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite("http://sps2010/sites/mavi/"))
{
using (SPWeb web = site.OpenWeb())
{
HttpRequest httpRequest = new HttpRequest("", web.Url, "");
HttpContext.Current = new HttpContext(httpRequest, new HttpResponse(new StringWriter()));
SPControl.SetContextWeb(HttpContext.Current, web);
using (EntitiesSps2010Mavi.EntitiesSps2010MaviDataContext dataContext = new EntitiesSps2010Mavi.EntitiesSps2010MaviDataContext("http://sps2010/sites/mavi/"))
{
var musteriler = from musteriListesi in dataContext.Musteriler
orderby musteriListesi.Title
select musteriListesi;
if (musteriler != null)
{
lvMusteriler.DataSource = musteriler.ToList();
lvMusteriler.DataBind();
}
}
}
}
});
HttpContext.Current = currentContext;
Dikkat edilmesi gereken nokta kodun en üst ve en alt satırında da görüldüğü üzere CurrentContext'i bağlantı yapılmadan önce tutmak ve işimiz bittikten sonra tekrar atamak.
SPMetal ile Entity kodumu Mavi adlı siteden çıkarttım bunun sebebi de Müşteriler listemin orada bulunmasından dolayıdır.
Hiç yorum yok:
Yorum Gönder