إنشاء كائن موقع جديد أو أوبنويب يفعل ذلك تلقائيا لروب
-
10-12-2019 - |
سؤال
هناك قائمة موجودة على سيتيكول 1 \ روت ويب.ليس لدى أوسيرا إذن على سيتيكول 1.لذلك نحن نستخدم رويب.نقرأ أننا بحاجة إلى إنشاء كائنات جديدة للموقع والويب.ومع ذلك, فول.يعمل الكود ، أحتاج إلى معرفة ما إذا كان using (SPWeb rootWeb = site.OpenWeb())
أوتوماتيكالي يدعو الكلمة الجديدة.
أو ما هي الطريقة لإنشاء كائن جديد من سبويب في هذه الحالة?
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite(SPContext.Current.Site.WebApplication.Sites[0].RootWeb.Url))
{
using (SPWeb rootWeb = site.OpenWeb())
{
//code to fetch data from list present in root web
}
}
});
المحلول
السبب في أن هذا يعمل هو أنك قمت بالفعل بإنشاء جديد SPSite
كائن داخل رويب وبالتالي SPWeb
عاد باستخدام SPWeb rootWeb = site.OpenWeb()
يعطي بشكل صحيح على شبكة الإنترنت مرتفعة.تحدث المشكلة إذا حاولت استخدام تم إنشاؤه مسبقا SPSite
أو SPWeb
كائنات داخل المندوب.لاحظ أنه في حالتك حتى SPWeb rootWeb = site.RootWeb
يجب أن تعمل أيضا.انظر هذا لمزيد من المعلومات: http://blogs.technet.com/b/sharepointdevelopersupport/archive/2013/03/13/using-spsite-and-spweb-objects-with-runwithelevatedprivileges-don-t-cross-the-borders.aspx