سؤال

أحاول إنشاء مثيل لـ SPSite على خادم المزرعة في عملية مخصصة (MyApp.exe) وأعطيها URI بالكامل كمعلمة (http://mysite:80/).لقد تأكدت أيضًا من تشغيل الحساب MyApp.exe يكون Site Collection Administrator.

ومع ذلك، لا أستطيع تقديم مثال على ذلك SPSite كل ما أحاول القيام به.يلقي دائما أ FileNotFoundException.

أي شخص لديه فكرة؟

تتبع المكدس:

في microsoft.sharepoint.spsite..ctor (مزرعة spfarm ، uri requesturi ، سياقات منطقية ، spusertoken usertoken)
في microsoft.sharepoint.spsite..ctor (string requesturl) في mycompanyname.service.helperclass.getItemStateInSharePoint (عنصر SharePointItem) في c: workspaces myCompanynam

ملاحظة جانبية أخرى...لدي تطبيق ويب + مجموعة مواقع يمكنني الوصول إليها من خلال المتصفح دون أي مشكلة.

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

المحلول

تم طرح FileNotFoundException قبل SharePoint عندما لا يمكن العثور على مجموعة الموقع المطلوب في قاعدة بيانات التكوين شير. تخميني هو أنك لم تكن قد أنشأت مجموعة موقع على URL HTTP: // مع mysite: 80 . أرى تتبع المكدس التالية إذا حاولت ومثيل كائن SPSite جديد مع URL لمجموعة الموقع غير موجود:

System.IO.FileNotFoundException : The site http://server/sites/bah could not be found in the Web application SPWebApplication 
Name=SharePoint - 80 Parent=SPWebService.
at Microsoft.SharePoint.SPSite..ctor(SPFarm farm, Uri requestUri, Boolean contextSite, SPUserToken userToken)
at Microsoft.SharePoint.SPSite..ctor(String requestUrl)

وتحديد URL الصحيح لجمع موقعك أو الإدارة المركزية مفتوحة وإنشاء موقع جديد مجموعة.

نصائح أخرى

وتغيير الهدف الأساسي في خصائص بناء على X64 حل هذه المسألة بالنسبة لي على شير 2010.

واقرأ هذا الموقع http://community.bamboosolutions.com/forums/t/ 8179.aspx إذا كنت تقوم بتشغيل نظام التشغيل الخاص بك قليلا إلى x64 وتستخدم MSTest (32BIT و) فإنها ستفشل، استخدم يعمل nunit!

إذا كان هو تطبيق وحدة الوصول شير 2010 عليك التأكد من الهدف بناء المشروع الخاص بك هو x64 و في .NET Framework 3.5 هو.

هذه المشكلة تتعلق أكثر بمشكلة إذن المستخدم، قم بمنح الإذن التالي

إذن المستخدمموقع شير بوينت --- الحد الأدنى لإذن القراءة

خادم شيربوينت --- أضف إلى مجموعة WSS_ADMIN_WPG

قاعدة البيانات --- محتوى SharePoint DB (قاعدة بيانات مجموعة الموقع) - DB_OWNER SERMISSE SharePoint Config DB (CONFIG DB من تثبيت SharePoint) - - DB_OWNER إذن

اقرأ المزيد في مدونتي

http://sharepointinstallation.blogspot.com/2010/12/minimal-permission-required-to-execute.html

ومن الممكن أيضا أن طراز كائن لا يحب URL كنت يعطيها. إذا لم يكن لتزويدها إما URL المحدد الذي قمت بإنشائه مجموعة الموقع أو URL المحدد المدرجة في تكوينه في ملفك تعيينات الوصول البديل، وسوف بطرح استثناء التي قد لا تجعل بالضرورة معنى. في قضيتك قد حاولت http://mysite أو http://machinename.

وتتبع مكدس الذاكرة المؤقتة الاستثناء من شأنه أن يكون مفيدا.

وأعتقد أنك ربما يمكن الحصول على بعض فكرة عما ملف هو عليه وبين ما يحدث عن طريق تعطيل "مجرد قانون بلدي" في أدوات -> خيارات -> تصحيح الأخطاء والنظر في حجة اسم الملف في مكدس الاستدعاءات الاستثناء عندما المصحح يظهر أنه (إذا كان يمكنك تصحيح ذلك بطبيعة الحال)، أو ربما اسم يظهر في رسالة الاستثناء.

وتحقق الملف web.config الخاصة بك ومعرفة ما إذا كان هناك التكوين هناك مع ملف مفقود.

ونظرة فيك 12 خلية للسجل. إذا كانت إعدادات السجل الخاص بك صحيحة، ستحصل على ملف المفقودين.

وتحرير: تحقق أيضا إذا كل ما تبذلونه من DLL هم في GAC. معرفة ما اذا كان ملف web.config يحتوي على جميع المعلومات: مساحة الاسم، اسم_الفئة، المجرد، الإصدار = VERSION_NUMBER، الثقافة your_culture الأمر PublicKeyToken = your_signed_token

ولقد اكتشفت مؤخرا أن هذه المشكلة مع منشئ يمكن أن يكون السبب من سلوك starnge من المنشئ.
أنا أخذ عن MOSS 2007. وعند الانتهاء من تمرير URL كامل الموقع إلى منشئ، على ما يبدو القيام به هو النظر في الواقع سوى جزء موقع URL، واختيار تطبيق ويب الذي هو 'seleced حاليا "في السيطرة محدد تطبيق ويب.
وهكذا، على سبيل المثال، عندما يكون لديك " HTTP: // تطبيق الويب / المواقع / الموقع " ولها "<ل أ href = "HTTP: // weabapp: 22345" يختلط = "نوفولو noreferrer"> HTTP: // weabapp: 22345 "المحدد حاليا (آخر مرة قمت فيها تحديده في مثل محدد) عند استدعاء

SPSite site = new SPSite("http://webapp/sites/site")

وويحاول فعلا لإنشاء كائن ل " HTTP الموقع: // تطبيق الويب: 22345 / المواقع / الموقع "وفشل.

كان لي نفس القضية.كنت أرغب في تشغيل تطبيق وحدة التحكم باستخدام معرف المستخدم الخاص بي.أنا مالك تطبيق ويب + مسؤول مزرعة.لا يزال غير قادر على تشغيل التطبيق.

تم حل المشكلة بواسطة

  1. تغيير هدف النظام الأساسي في خصائص البناء إلى x64

  2. في إعدادات الموقع --> المستخدمون والأذونات --> مسؤولو مجموعة الموقع، كان هناك اسمان.تمت إزالة الاسم الآخر وبدأ العمل.

ويمكنك الحفاظ على الهدف تجميع مشروع لتعيين "أي وحدة المعالجة المركزية". وأهمية هذا الأمر لتكوين عملية المضيف MSTest لخوض 64bits. فتح ملف .testsettings الخاص بك، انتقل إلى علامة التبويب المضيفات ومجموعة "اختبارات تشغيل في 64 بت ..."

إذا بعد هذا عند تشغيل الاختبارات الخاصة بك VS يقول لك لا يوجد أي، وإزالة وإضافة مشروع اختبار مرة أخرى (أنا لا أعرف حلا أفضل لهذا)

ونأمل أن يساعد!

لقد واجهنا نفس المشكلة، ولكنني على دراية بالأسباب المختلفة، إليك ملخصًا:

  1. من الممكن أنك أخطأت في كتابة العنوان الخاطئ أو قمت بإدخاله بطريقة أخرى
  2. حساب المستخدم الذي يقوم بالعملية ليس لديه الأذونات المطلوبة، وهي:قراءة الإذن لموقع SharePoint، وdbo لقاعدة بيانات تكوين SharePoint، وقاعدة بيانات المحتوى.
  3. يجب أن تكون العملية 64 بت (الافتراضي هو 64 بت "أي وحدة معالجة مركزية") عند البناء على خادم 64 بت.
  4. يجب أن تستهدف العملية .NET 3.5

وكان يعاني I هذا قبل بضعة أسابيع. في النهاية اكتشفت أن الملف الذي لا يمكن العثور كان التجمع شير نفسها. في وقت فشلت في تحميل التجميع الأقمار الصناعية عبر في وقت متأخر ملزمة.

وكان الحل لمشكلتي لتسجيل شير 12.0.0.0 جمعيات في GAC. فإنه لا يبدو انها نفس مشكلتك، ولكن فقط لمعلوماتك.

ولقد واجهنا نفس المشكلة قبل بضعة أيام، وكان الحل لتعيين التطبيق، وهذا هو محاولة لخلق كائن دي SPSite، لاستخدام نفس AppPool أن شير في تطبيق ويب.

ونأمل أن يساعد.

وكان MSTest بشأن القضية إلى x64 سبب هذه المشكلة بالنسبة لي. يعمل في التطبيق وحدة التحكم.

ولدي نوع مشابه لهذه المسألة.

في السيناريو الخاص بي، وكنت قادرا على إنشاء مثيل SPSite من تطبيق وحدة التحكم، ولكن عندما حاول زميله آخر للقيام بذلك، ألقى تطبيق نفس استثناء كما هو مذكور أعلاه.

والحل: أنا واضاف زميله الآخر كمسؤول على المحتوى المربع خادم ديسيبل (وهذا قد لا يكون ممكنا للجميع)، رمز يعمل بشكل جيد وليس خطأ

ونفس المشكلة إلى SharePoint 2010. ومع ذلك كانت هذه المسألة مع خدمة على شبكة الانترنت الذي تم الوصول إلى طراز كائن شير. يجب أن يكون تجمع التطبيقات التي يجب تشغيل هذه الخدمة تحت المشرف المزرعة.

قد لا يكون التبديل إلى NUnit خيارًا متاحًا للجميع.
في حالتي، كانت المشكلة هي أنني كنت أستخدم خادمًا 64 بت، وقد قمت بفحص أي وحدة معالجة مركزية (لذلك تم اختيار الإصدار الصحيح) ولكن تم ضبط إعدادات الاختبار الخاصة بي على "فرض تشغيل الاختبارات في عملية 32 بت" (GAH! )

في MSTest، انتقل إلى TEst->تحرير إعدادات الاختبار->تتبع واختبار التأثير.
اختر المضيفين.
تأكد من أنك تعمل ضد الإصدار الصحيح.Here's what you should be picking

فيما يلي قائمة المراجعة الخاصة بي لـ VS2010 SP1، MSTest.

  • أنت بحاجة إلى SP1 حتى تتمكن من توجيه الاختبارات إلى .NET 3.5.لن يعمل مع .NET 4.0
  • تأكد من تحميل الموقع - لقد قمت بتشغيل الموقع مباشرة من محرر VS2010، لأنه رابط تشعبي
  • التحقق من إعدادات البناء.لاختيار 64 بت إذا كان الخادم 64 بت.
  • في حالتي كان لدي خادم 64 بت، ولكن اختيار x64 سيفشل!كان هذا أول دليل لي.
  • تأكد من أن إعدادات الاختبار تدعم البتات الصحيحة.

وكان لي نفس المشكلة تحاول الوصول إلى شير 2010.

وأنا ثابتة عن طريق تغيير الإطار الهدف إلى صافي 3.5.- التي هي النسخة المعتمدة لشير 2010.

في حالتي كان بالتأكيد مشكلة أذونات مع حساب لقد تم تسجيل في النوافذ.

جرب هذا الأمر في إدارة شل شير تشغيل كمسؤول:

وGET-SPSite " HTTP: // yoursite / yourcollection '

إذا تحصل أخطاء ثم تسجيل الدخول إلى خادم SharePoint كمستخدم تجمع التطبيقات أو حساب المستخدم لتثبيت SharePoint و حاول الأمر أعلاه مرة أخرى.

إذا كان يعمل ثم أنت تعلم الحساب السابق لديه مشكلة أذونات. لعلاج هذه المشكلة، قم بتشغيل هذا الأمر في نفس الإطار قذيفة وتوريد الحساب الذي تريد استخدامه في VS:

والإضافية SPShellAdmin -UserName المجال \ المستخدم

واجهت نفس المشكلة، وقمت بإجراء التغييرات أدناه وبدأ العمل.

  1. تغيير هدف النظام الأساسي في الاستوديو المرئي إلى x64
  2. تأكد من تشغيل الاستوديو المرئي في وضع "المسؤول".
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top