无法通过PowerShell启用功能接收器功能

时间:2010-09-16 03:05:12

标签: powershell sharepoint-2010 sharepoint-feature

我遇到了一个问题,我可以通过网站设置启用功能UI,但是如果我尝试通过Sharepoint powershell启用该功能(我们在脚本化部署中执行此功能) ,我得到以下内容:

  

启用-SP功能:无法创建   汇编“xxxxx的接收器对象,   版本= 1.0.0.0,文化=中立,   PublicKeyToken = 967e6960f5af91e6“,   class“xxxxx.EventReceiver”for   功能“xxxxx.Public.Search”(ID:   026d7c45-a359-4550-822d-1a6c35e58e0   d):System.ArgumentNullException:   值不能为空。参数名称:   型

有谁知道为什么会这样,或者我应该检查一些事情?功能定义肯定是正确的(因为通过UI部署它按预期工作,我还仔细检查了PublicKeyToken是否正确等等),并重新启动服务和iisreset也不能使我使用Enable-SPFeature。

5 个答案:

答案 0 :(得分:8)

我有同样的问题。奇怪的是当你打开一个新的SP2010 powershell窗口并重新发出相同的命令时,发现程序集没有任何问题。看到: http://khurramdotnet.blogspot.com/2011/01/enable-spfeature-command-throwing.html

答案 1 :(得分:1)

试试这个:转到“控制面板”,单击“程序”,单击“程序和功能”,选择“Microsoft SharePoint Server 2010”(或任何已安装的),单击“更改”,选择“修复”然后单击“继续”。这对我有所帮助。

答案 2 :(得分:1)

试试这个:http://geoffwebbercross.blogspot.ca/2011/06/failed-to-create-receiver-object-from.html 它对我有用,我没有必要在我的代码/解决方案中改变一个针脚

答案 3 :(得分:0)

我昨天有这个,结果是功能名称和功能接收者名称不匹配。为了解决这个问题,我将FeatureActivated代码复制到记事本(整个代码块)或者你编码的任何事件。

  1. 复制您的整个事件代码 写了I.e.该 FeatureActivated方法(包括 签名)
  2. 删除EventReceiver 来自你的项目。
  3. 添加新活动 收到你的项目(你可以 仔细检查更改的名称)
  4. 将事件代码粘贴回 事件接收者。
  5. 我使用以下代码使用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
        }
    

答案 4 :(得分:0)

请勿使用“普通”PowerShell,而是使用SharePoint 2010 Management Shell。