2010-09-16 12 views
5

Mam problem, w którym mogę włączyć funkcję interfejsu użytkownika i wszystko działa zgodnie z oczekiwaniami za pomocą ustawień witryny, ale jeśli spróbuję włączyć tę funkcję za pomocą powłoki uprawnień Sharepoint (którą jesteśmy robi w ramach wdrażania skryptów), mam następujące:Nie można włączyć funkcji odbiornika elementów za pomocą PowerShell

Enable-SPFeature: Nie udało się utworzyć odbiornik obiekt z zespołu „xxxxx, Version = 1.0.0.0, Culture = neutral, TokenKluczaPublicznego = 967e6960f5af91e6 ", klasa" xxxxx.EventReceiver "dla funkcja" xxxxx.Public.Search "(ID: 026d7c45-a359-4550-822d-1a6 c35e58e0 d) .: System.ArgumentNullException: Wartość nie może być pusta. Nazwa parametru: typ

Czy ktoś wie, dlaczego tak się stało, lub niektóre rzeczy, które powinienem sprawdzić? Definicja cechy jest zdecydowanie poprawna (ponieważ wdrożenie jej za pośrednictwem interfejsu działa zgodnie z oczekiwaniami, a także dwukrotnie sprawdziłem, czy klucz PublicKeyToken jest poprawny itd. Itd.), A ponowne uruchamianie usług i iisreset nie pozwala mi używać funkcji Enable-SPFeature.

+0

mam ten sam problem. Mogę aktywować bezbłędnie funkcję z interfejsu WWW, ale nie z PowerShell z enable-spfeature. Dotyczy to również wszystkich funkcji dostępnych na poziomie witryny z nowymi dołączonymi odbiornikami zdarzeń (bez żadnego kodu wewnątrz zdarzeń) i docelowym miejscem wdrażania zestawu ustawionym na webaplikację. –

Odpowiedz

0

Miałem to wczoraj, okazało się, że nazwa funkcji i nazwa odbiornika funkcji nie były zgodne. Aby go rozwiązać, skopiowałem kod FeatureActivated do notatnika (cały blok kodu) lub dowolne zdarzenia, które zostały zakodowane.

  1. Skopiuj cały kod zdarzenia, który został napisany przez użytkownika . Metoda FeatureActivated (w tym )
  2. Usuń EventReceiver z projektu.
  3. Dodaj nowe wydarzenie odebrany do projektu (można podwójnie sprawdzić nazwę zmianami)
  4. Wklej kod zdarzenia z powrotem do odbiornika zdarzeń.

używam następujący kod do wdrożenia przy użyciu PowerShell

if(($Solution -ne $null) -and ($Solution.ContainsWebApplicationResource)) 
    { 
     if ($FeatureScope -eq "Web") 
     { 
      Install-SPSolution $SolutionName -url $siteUrl -GACDeployment -Confirm:$false 
     } 
     else 
     { 
      Install-SPSolution $SolutionName -AllWebApplications -GACDeployment -Confirm:$false 
     } 
    } 
    else 
    { 
     Install-SPSolution $SolutionName -GACDeployment -Confirm:$false 
    } 
    while($Solution.Deployed-eq$false) 
    { 
     Start-Sleep 2 
     Write-Host "." -NoNewline 
    } 
+0

Próbowałem tego i nie działało - jestem całkiem pewny, że nazwa klasy odbiornika zdarzeń jest poprawna, ponieważ działa poprawnie podczas próby wdrożenia za pośrednictwem interfejsu użytkownika, ale po prostu nie przez Powershell ... –

1

Spróbuj tego: przejdź do Panelu sterowania, kliknij na „Programy”, kliknij na „Programy i funkcje”, wybierz „Server Microsoft SharePoint 2010 "(lub cokolwiek, co zainstalowałeś), kliknij" Zmień ", wybierz" Napraw "i kliknij" Kontynuuj ". To mi pomogło.

0

Nie używaj "normalnego" PowerShell, zamiast tego użyj powłoki zarządzania SharePoint 2010.

+0

Przepraszam, powinienem były bardziej szczegółowe - zdecydowanie używałem SharePoint PowerShell. –

Powiązane problemy