سؤال

أحاول فتح ملف XML من مكتبة المستندات الخاصة بي.أقوم بتشغيل بعض التعليمات البرمجية ك "امتياز مرتفع" على ملف أعرفه موجود.

الكود الذي كتبته هو: giveacodicetagpre.

عندما وصلت إلى أمر Xdocument.load أحصل على استثناء "401 غير مصرح به" ..

هل هناك خطأ ما في التعليمات البرمجية الخاصة بي؟هل xdocument يعمل مع praibilege الخطأ؟

شكرا جزيلا

هل كانت مفيدة؟

المحلول

أعتقد أن تطبيق XDocument.Load (String) لا يدعم طلب مصادق عليه لاسترداد ملف XML.

ومع ذلك، هناك طريقة أخرى لأن النهج الذي تتناوله سيعني أنه في كل مرة يتم فيها فتح مستند طلبتين ويبين يتم إجراؤها.

  1. واحد لبناء عنوان URL باستخدام كائن spfile
  2. للوصول إلى كائن spfile باستخدام عنوان URL المدمج في الخطوة 1.

    ماذا عن بدلا من بناء متغير Fileurl، فأنت تستخدم مجموعة زائدة أخرى من XDocument.load ()؟هذه المرة بدلا من إصدار URI في كائن دفق.

    لديك كل المعلومات التي تحتاجها ويمكن أن تفعل شيئا مثل هذا: - giveacodicetagpre.

    لم أحاول الكود ولكن أخبرنا كيف تحصل عليه. قم أيضا بتشغيل spdisposecheck للتأكد من أن هذا لا يسبب أي تسرب للذاكرة.

نصائح أخرى

اكتشفت أنه مع التحويلات الصحيحة يمكنني إدارة الدفق كما أنا في تطبيق "عادي".

الرمز الذي أستخدمه الآن (ويعمل هو: giveacodicetagpre.

لم تنجح طريقة Simon Doy بالنسبة لي - أحصل على أخطاء إذا قرأت في طريقة تيار في Xdocument.load () - "أفضل طريقة تزيينت طريقة مثالية ل" system.xml.linq.xdocument.load (system.xml.xmlReader) "لها بعض الوسائط غير الصالحة" و "الحجة" 1 ": لا يمكن تحويلها من" system.io.io.stream "إلى" system.xml.xmlreader ""

منحت الآن، كنت أحاول سحب ملف XML أضفت للتو إلى بنية المجلد لموقع SharePoint باستخدام SharePoint Designer، بدلا من ملف في مكتبة مستندات، ولكن يبدو لي اختلاف اجتيازStreamReader مهم جدا، نظرا لأنني كنت قادرا على الحصول عليها للعمل عند استخدام طريقة Ziba، لكنها لن تقبل دفقا - إلا أنه يحتوي فقط على خيارات URI أو Textreader أو XMLReader (والتي يمكن أن تكون في شكل StreamReader). giveacodicetagpre.

تم اختبار هذا ويعمل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى sharepoint.stackexchange
scroll top