Rozwiązanie problemu: “FileNotFoundException” Z mojego odbiornikiem funkcji.

Pracowałem na funkcję w zeszłym tygodniu, że dodać kilka odbiorników przypadku wystąpienie określonej listy. (I blogowane trochę o tym tutaj listy odbiornika).

Przy użyciu wiersza polecenia, Z błąd nie może zainstalować funkcję (ale można znaleźć poniżej w ukrytych błąd). Kiedy próbował wdrożyć funkcję na stronie, MOSS spornej "FileNotFoundException" błąd. Ten wpis w blogu zawiera opis jak go rozwiązał.

Jest to błąd, który MOSS pokazał mnie w przeglądarce sieci web:

Funkcja "b2cb42e3-4f0a-4380-aaba-1ef9cd526f20’ nie można zainstalować ponieważ ładowanie zestawu odbiornika zdarzeń "xyzzyFeatureReceiver_0" nie powiodło się: System.IO.FileNotFoundException: Nie można załadować pliku lub wirtualny plik dziennika ' xyzzyFeatureReceiver_0’ lub jednej z jego zależności. System nie może odnaleźć określonego pliku.
Nazwa pliku: "xyzzyFeatureReceiver_0’
w System.Reflection.Assembly.nLoad(AssemblyName nazwa_pliku, Ciąg codeBase, Dowody assemblySecurity, Zespół locationHint, StackCrawlMark& stackMark, Logiczna throwOnFileNotFound, Logiczna forIntrospection)
w System.Reflection.Assembly.InternalLoad(AssemblyName elementu assemblyRef, Dowody assemblySecurity, StackCrawlMark& stackMark, Logiczna forIntrospection)
w System.Reflection.Assembly.InternalLoad(Ciąg assemblyString, Dowody assemblySecurity, StackCrawlMark& stackMark, Logiczna forIntrospection)
w System.Reflection.Assembly.Load(Ciąg assemblyString)
w Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
OSTRZEŻENIE: Montaż wiązania rejestrowanie jest wyłączone OFF.
Aby włączyć rejestrowanie, ustawić wartość rejestru [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD) do 1.
Uwaga: Istnieje niektóre kary wydajności związanych z rejestrowanie.
Aby wyłączyć tę funkcję, Usuń wartość rejestru [HKLMSoftwareMicrosoftFusion!EnableLog].

Rozwiązywanie problemów z programem Windows SharePoint Services z.

Wiem, jak celowo spowodować błąd ten: nie należy instalować wirtualny plik dziennika w pamięci podręcznej GAC. Ale, to było w pamięci podręcznej GAC. Normalnie instalowania zestawów w pamięci podręcznej GAC, przeciągając je do c:\windowsassembly folderów przy użyciu Eksploratora windows. Nigdy nie czułem 100% komfortowe robić iż ponieważ zawsze myślę, że gacutil istniały z powodu … tak próbowałem, że. To nie ma różnicy.

Przeszukiwane Internets i znaleźć na stanowisku tym: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1

Plakat się stało się przy użyciu tych samych bit głównego kodu (z książki wewnątrz WSS z tej listy) tak to było znakiem nadziei. Jednakże, Sugerowanie wykończeniowe Zgromadzenie z [montaż: ] dyrektywy nie ma sensu do mnie. Próbowałem i tak, i miałem rację. To nie ma różnicy.

Potem zauważyłem, że moja definicja klasy nie był publiczny. Zrobiłem to za publiczne i że nie ma różnicy.

Następny, Ja poszedłem do problemów umożliwienia "Zgromadzenie wiązanie awarii dziennik" (w następstwie pomocne i dokładne instrukcje pod warunkiem) i to jest gdzie wszystko zaczęło się ciekawie. Log pokazuje mi, że runtime jest wyszukiwanie wszędzie na tym serwerze do mojego zestawu. To nawet wydaje się być to wyszukiwanie w mojej apteczce. Ale … on nie będzie go wyszukać w pamięci podręcznej GAC.

Umieścić na moim kurtka zimowa i ponownie go do poszukiwania Internets i znaleźć, że ktoś miał ten problem zbyt. Długich dyskusji w tym księgowania peters off na nic i nie może znaleźć rozwiązanie.

Przenoszę mój zespół w jednym z miejsc, które dziennik twierdzi, to jest wyszukiwanie i trochę więcej postęp. Jestem nagrodzone nowy błąd w przeglądarce, podczas ja próbować wobec przyśpieszyć ten cecha:

Nie można utworzyć obiektu odbiornik funkcji z zestawu "xyzzyFeatureReceiver_0", Wpisz "Conchango.xyzzyFeatureReceiver" dla funkcji b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: System.ArgumentNullException: Wartość nie może być zerowy.
Nazwa parametru: Typ
w System.Activator.CreateInstance(Typ, Logiczna nonPublic)
w System.Activator.CreateInstance(Typ)
w Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()

Rozwiązywanie problemów z programem Windows SharePoint Services z.

Czas na jedną podróż ostatni do Internets!

Tym razem dowiedzieć się, wystarczająco właściwie, że MOSS kwestie ten błąd, ponieważ wirtualny plik dziennika nie jest w pamięci podręcznej GAC.

Chcę, aby uzyskać coś pozytywne z tej i spróbuj się trochę dumny, że została utworzona Ścigany instrukcje MSIL zestawów, ale to nie działa. Jestem po prostu zły. Znalazłem się mrucząc "jajko czy kura" pod my breath.

W końcu zdecydować do punt. I stworzyć zupełnie nowy projekt i Kopiuj/wklej kod z incredible-cloaked-from-the-GAC-assembly projektu pracy nad nowy projekt. (Mam szukać kompilacji flagę o nazwie coś w stylu „Ukryj z zestawu wiążące Jeśli zainstalowany w pamięci podręcznej GAC" ale nie może odnaleźć jednego).

Zainstalować funkcję i go uaktywnić i … to działa! Tak, po tym wszystkim, Miałem na zasadzie "restart’ mój projekt. Jest to kolejny powód dlaczego I hate komputerów.

Dowiedzieć się coś pożytecznego z tego. Miał Instalowanie funkcji przy użyciu wiersza polecenia stsadm cały dzień i zostały z wykorzystaniem "-życie" Opcja z przyzwyczajenia. Z jakiegoś powodu, I nie używać opcji - force gdy zainstalowałem nowego projektu. Tym razem, I did faktycznie, prawdziwie zapominać wobec kopiować ten nowy projekt wirtualny plik dziennika w pamięci podręcznej GAC. W rezultacie, Mimo że odebrano tego FielNotFoundException"" błąd. Tym razem, I got it z stsadm, nie podczas ja wypróbowany wobec przyśpieszyć ten cecha za pośrednictwem przeglądarki sieci web. Tak, -życie faktycznie pełni dwie role. To pozwala ponownie zainstalować funkcję istniejących. To również pozwala na zainstalowanie buggy funkcja, która nie może pracować w czasie wykonywania przez pomijanie błąd. To chyba mówi tyle gdzies w pomocy, ale nigdy nie zauważyłem.

</koniec>

Technorati znaczniki: ,

3 przemyślenia na temat „Rozwiązanie problemu: “FileNotFoundException” Z mojego odbiornikiem funkcji.

  1. Francisco

    Również, Miałem mój 2 godziny histerycznej nintendoSIXTYFOURRRR w a-bad sposób momenty kiedy ja przemianowany Namespace odbiornika funkcji, Aby pomóc śledzić gdzie Twoje lub ktokolwiek inny w rozpoczął.

  2. Francisco

    Główny problem leży na wdrożonym wsp w bazie danych programu sharepoint. Czytam Twój post i choć to rzeczywiście rozwiązać problem mamy ogromne rozwiązania z kilku projektów i kilkadziesiąt plików, więc wszystko w ruchu nie było opcji.

    Niezależnie od tego, jak wiele aktualizacji swojej GAC lub złożeniu, co daje Ci kłopoty jest zgromadzenie w bieżącym WSP zainstalowany w programie sharepoint.

    Można łatwo zauważyć, że starając się tylko wycofać rozwiązanie (który jest gdzie ten błąd dzieje się). Wszystko dzieje się na czas wciągania"" należy uznać za "wdrożonego wsp"-nie tylko sam projekt.

    Mój workaround był:

    – Europie Środkowo-admin: Anuluj rozwiązanie
    – stsadm: deletesolution
    – Visual Studio => Projekt => Pakiet
    – stsadm: addsolution-plik ProjectbinDebugProject.wsp
    – stsadm: deploysolution-nazwa project.wsp-natychmiastowe - allowgacdeployment-życie
    – Visual Studio => Wdrożyć

    Również usunięte foldery bin i debugowania z projektu przed uruchomieniem wdrożyć ponownie, nie może mieć żadnego wpływu, ale warto komentując.

    Działa to zarówno dla

    Funkcja" … nie może być zainstalowany ponieważ ładowanie montaż odbiornika zdarzenia"
    i
    "Nie można utworzyć obiektu funkcji odbiornika z wirtualny plik dziennika"

    Podziękowania!
    Francisco

  3. Tom Clarkson

    Właśnie spędził kilka godzin próbuje rozwiązać ten sam problem i znaleźć lepsze rozwiązanie niż po prostu ponowne tworzenie projektu.

    Okazało się, że z jakiegoś powodu, Visual Studio miał ustawić cel budowy x 86 a nie x 64 lub instrukcje MSIL – wirtualny plik dziennika został w pamięci podręcznej GAC, nie tylko sam GAC, 64 nieco SharePoint był patrząc.

Zostaw odpowiedź do Francisco Anuluj odpowiedź

Twoj adres e-mail nie bedzie opublikowany. wymagane pola są zaznaczone *