Невозможно включить функцию с приемником функций через PowerShell - PullRequest
5 голосов
/ 16 сентября 2010

У меня проблема с тем, что я могу включить функцию с пользовательским интерфейсом, и все работает как положено через настройки сайта, но если я попытаюсь включить функцию с помощью PowerShell Sharepoint (что мы делаем в рамках сценариев развертывания), Я получаю следующее:

Enable-SPFeature: не удалось создать объект-получатель из сборки "xxxxx, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = 967e6960f5af91e6", класс "xxxxx.EventReceiver"для функции "xxxxx.Public.Search" (ID: 026d7c45-a359-4550-822d-1a6c35e58e0 d) .: System.ArgumentNullException: значение не может быть нулевым.Имя параметра: введите

Кто-нибудь знает, почему это произойдет, или некоторые вещи, которые я должен проверить?Определение функции определенно верно (поскольку развертывание через пользовательский интерфейс работает, как и ожидалось, и я также дважды проверил правильность PublicKeyToken и т. Д. И т. Д.), И перезапуск служб и iisreset также не позволяют мне использовать Enable-SPFeature.

Ответы [ 5 ]

8 голосов
/ 06 мая 2011

У меня та же проблема. Любопытно, что когда вы открываете новое окно PowerShell SP2010 и снова вводите ту же команду, сборка будет найдена без каких-либо проблем. Увидеть: http://khurramdotnet.blogspot.com/2011/01/enable-spfeature-command-throwing.html

1 голос
/ 25 января 2014

Попробуйте это: http://geoffwebbercross.blogspot.ca/2011/06/failed-to-create-receiver-object-from.html У меня это сработало, мне не нужно было менять строчку в моем коде / решении

1 голос
/ 08 ноября 2010

Попробуйте: перейдите в Панель управления, нажмите «Программы», нажмите «Программы и компоненты», выберите «Microsoft SharePoint Server 2010» (или все, что у вас установлено), нажмите «Изменить», выберите «Восстановить» и нажмите «Продолжить». Это то, что мне помогло.

0 голосов
/ 09 марта 2011

Не используйте «обычный» PowerShell, вместо этого используйте командную консоль SharePoint 2010.

0 голосов
/ 16 сентября 2010

У меня было это вчера, получается, что имя функции и имя получателя функции не совпадают. Чтобы решить эту проблему, я скопировал код FeatureActivation в блокнот (весь блок кода) или в любое другое событие, которое вы кодировали.

  1. Скопируйте весь код события, который вы написал I.e. FeatureAcactive метод (в том числе подпись)
  2. Удалить EventReceiver из вашего проекта.
  3. Добавить новое событие получил в ваш проект (вы можете дважды проверьте имя на предмет изменений)
  4. Вставьте код события обратно в получатель события.

Я использую следующий код для развертывания с использованием 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
    }
...