פתרון בעיה: “FileNotFoundException” עם אזור מקלט תכונה.

עבדתי על תכונה בשבוע שעבר היה מוסיף כמה מקלטים האירוע מופע ספציפי ברשימה. (אני blogged קצת את המקלט הרשימה כאן).

באמצעות שורת הפקודה, אני יכול להתקין את התכונה עם הודעת שגיאה (אך ראה להלן השגיאה מוסתרים). כאשר ניסיתי לפרוס את התכונה באתר, מוס התלוננו על FileNotFoundException"" שגיאה. את הבלוג מתאר איך פתרתי את זה.

זו השגיאה מוס הראה לי בדפדפן אינטרנט:

התכונה ' b2cb42e3-4f0a-4380-אודי לוין-1ef9cd526f20’ שלא הייתה אפשרות להתקין כי הטעינה של אירוע מקלט הרכבה "xyzzyFeatureReceiver_0" נכשל: System.IO.FileNotFoundException: אין אפשרות לטעון קובץ או הרכבה ' xyzzyFeatureReceiver_0’ או אחת מהתלויות שלו. אין למערכת אפשרות למצוא את הקובץ שצוין.
שם קובץ: ' xyzzyFeatureReceiver_0’
ב- System.Reflection.Assembly.nLoad(שם קובץ AssemblyName, מחרוזת בסיס קוד, AssemblySecurity הראיות, הרכבה locationHint, StackCrawlMark& stackMark, ThrowOnFileNotFound בוליאנית, ForIntrospection בוליאנית)
ב- System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, AssemblySecurity הראיות, StackCrawlMark& stackMark, ForIntrospection בוליאנית)
ב- System.Reflection.Assembly.InternalLoad(מחרוזת assemblyString, AssemblySecurity הראיות, StackCrawlMark& stackMark, ForIntrospection בוליאנית)
ב- System.Reflection.Assembly.Load(מחרוזת assemblyString)
ב- Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
WRN: רישום איגוד הרכבה פעילה OFF.
כדי לאפשר רישום כשל איגוד הרכבה, הגדר את ערך הרישום [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD) כדי 1.
הערה: יש איזה עונש הביצועים המשויכים רישום כשל איגוד הרכבה.
כדי לבטל תכונה זו, הסר את ערך הרישום [HKLMSoftwareMicrosoftFusion!EnableLog].

פתרון בעיות עם Windows SharePoint Services.

אני יודע כיצד בכוונה לגרום לשגיאה הזאת: לא התקנת ההרכבה ב- GAC. אבל, זה היה ב- GAC. אני בדרך כלל התקן הרכבות GAC על ידי גרירתם לתוך הארובות:\windowsassembly תיקיה באמצעות סייר windows. אף פעם לא הרגשתי 100% נוח לעשות את זה. כי תמיד חשבתי ש-gacutil זה קיים מסיבה מסוימת … אז ניסיתי את זה. זה לא משנה.

חיפשתי את Internets ומצאתי פוסט זה: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1

הפוסטר קרה משתמש הסיבית שורש באותו קוד (מתוך הספר בתוך WSS מרשימה זו) אז זה היה סימן. עם זאת, הצעתו של לקשט את מכלול עם [הרכבה: ] הוראה לא הגיוני בשבילי. ניסיתי את זה בכל מקרה. ואני צדקתי. זה לא משנה.

ואז הבחנתי כי הגדרת מחלקה שלי איננה ציבורית. אני הכנתי את זה הציבור וזה גרם אין הבדל.

הבא, אני ניגש לשולחן של הפיכת "מכלול bind כשל ביומן" (בעקבות ההוראות מדויקות ומסייע מסופקים) כאן הדברים התחיל להיות מעניין. יומן הרישום מראה לי כי זמן הריצה הוא חיפוש בכל מקום בשרת זה להרכבה שלי. הוא אפילו מופיע כדי לחפש אותו בארון תרופות. אבל … זה לא לחפש אותם ב- GAC.

. תלבש את הז'קט החורף שלי ו ללכת לחפש את Internets שוב, למצוא. מישהו אכל את הבעיה גם. הדיון הממושך הזה רישום פיטרס לתוך כלום ואני לא מוצא פתרון.

אני עובר באחד המקומות שהיומן טוען זה מחפש להתקדם עוד קצת את הרכבה. אני מתוגמל שגיאת חדש בדפדפן כאשר אני מנסה להפעיל את תכונת:

יצירת האובייקט המקבל תכונה מהרכבה "xyzzyFeatureReceiver_0" נכשלה, הקלד "Conchango.xyzzyFeatureReceiver" עבור תכונה b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: System.ArgumentNullException: ערך אינו יכול להיות null.
שם פרמטר: סוג
ב- System.Activator.CreateInstance(סוג, NonPublic בוליאנית)
ב- System.Activator.CreateInstance(סוג)
ב- Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()

פתרון בעיות עם Windows SharePoint Services.

זמן לעוד נסיעה אחת אחרונה האינטרנט במלואו!

הפעם אני אגלה, כצפוי מספיק, מוס בעיות שגיאה זו, כי מכלול זה לא ב- GAC.

אני רוצה לקנות משהו חיובי מזה ולנסות להרגיש קצת גאה שאני יצרתי נמלט מכלולים MSIL, . אבל זה לא עובד. . אני פשוט כועס. אני מוצא את עצמי ממלמל "הביצה או התרנגולת" תחת נשימתי.

סוף סוף החלטתי פונט. ליצור פרוייקט חדש לגמרי, ואני העתק/הדבק הקוד מהפרוייקט שאינו עבודה incredible-cloaked-from-the-GAC-assembly על הפרוייקט החדש הזה. (אני מחפש דגל לבנות סינדרום "הסתר מהרכבה מחייב אם מותקן ב- GAC" אבל לא יכול למצוא אחד).

התקנת התכונה ולהפעיל אותו, … זה עובד! כל כך, אחרי כל זה, נאלצתי בעיקרון ' אתחול מחדש’ הפרוייקט שלי. זוהי סיבה נוספת למה אני שונא מחשבים.

. למדתי משהו מועיל מזה. אני היה מתקין תכונות באמצעות שורת הפקודה stsadm כל היום כבר בשימוש "-כוח" אפשרות מתוך הרגל. מסיבה כלשהי, לא השתמשתי בכוח האפשרות - כאשר התקנתי את הפרוייקט החדש. הפעם, עשיתי למעשה, באמת לשכוח להעתיק ההרכבה של הפרוייקט החדש הזה לתוך GAC. כתוצאה מכך, קיבלתי את FielNotFoundException"" שגיאה. הפעם, קיבלתי אותה stsadm, לא כאשר ניסיתי להפעיל את תכונת באמצעות דפדפן האינטרנט. כל כך, -כוח למעשה ממלא שני תפקידים. זה מאפשר לך להתקין מחדש את תכונה הקיימת. זה גם מאפשר לך להתקין תכונה מרכבה זה לא יכול לעבוד בזמן ריצה על-ידי דיכוי השגיאה. זה כנראה אומר באותה מידה ב עזרה איפשהו אבל שלא הבחנתי בה.

</קצה>

תגיות טכנורטי: ,

3 מחשבות על "פתרון בעיה: “FileNotFoundException” עם אזור מקלט תכונה.

  1. פרנסיסקו

    גם, היה לי שלי 2 שעות של רגעים nintendoSIXTYFOURRRR-ב--רעות-way hysteric מתי אני שמה את Namespace במקלט תכונה, לבדוק איפה שלך או של מישהו אחר התחיל.

  2. פרנסיסקו

    שורש הבעיה טמון על wsp שנפרס במסד הנתונים של sharepoint. קראתי את ההודעה שלך, בזמן זה בהחלט לפתור את הבעיה יש לנו פתרון ענק עם מספר פרויקטים, עשרות קבצים אז עוברים הכל לא היתה אופציה.

    לא משנה כמה אתה מעדכן GAC שלך או הרכבה שלך, מה נותן לך צרות היא מכלול WSP הנוכחי מותקן sharepoint.

    אתה יכול בקלות לב זה בניסיון. רק תמשוך את הפתרון (שזה איפה השגיאה קורה). מה שקורה בזמן"היציבה" צריך להיחשב "פרוס wsp"-רק לא את הפרויקט עצמו.

    לעקיפת הבעיה שלי היה:

    – ניהול מרכזי: ביטול פתרון
    – stsadm: deletesolution
    – Visual Studio => פרוייקט => החבילה
    – stsadm: addsolution-קובץ ProjectbinDebugProject.wsp
    – stsadm: deploysolution-שם project.wsp-מיידית - allowgacdeployment-כוח
    – Visual Studio => לפרוס

    מחקתי גם את התיקיות סל של איתור באגים מהפרויקט לפני הפעלת פרוס שוב, אולי אין כל השפעה, אבל כדאי להעיר.

    זה עובד לשני הכיוונים

    "תכונה … שלא הייתה אפשרות להתקין כי הטעינה של אירוע מקלט הרכבה"
    ו
    "לא ניתן היה ליצור אובייקט מקלט תכונה מהרכבה"

    תודה!
    פרנסיסקו

  3. טום קלרקסון

    ביליתי כמה שעות מנסה לתקן את הבעיה אותה ומצא פתרון יותר טוב פשוט יצירה מחדש את הפרוייקט.

    התברר כי מסיבה כלשהי ש-visual Studio היה להגדיר את המטרה לבנות x 86 במקום x 64 או MSIL – ההרכבה היה ב- GAC, פשוט לא GAC אותו את זה 64 סיבית SharePoint מביטה לתוך.

תשאיר הודעה

כתובת האימייל שלך לא תפורסם. שדות חובה מסומנים *