Sharepoint 2010 SharePoint 2010电子邮件事件处理程序生成错误“;无法加载文件或程序集…“;,列表停止工作

Sharepoint 2010 SharePoint 2010电子邮件事件处理程序生成错误“;无法加载文件或程序集…“;,列表停止工作,sharepoint-2010,Sharepoint 2010,在浏览了很多博客之后,我得到了下面的代码。 但是,一旦我通过事件处理程序注册并重新启动SharePoint计时器服务,当我向列表发送电子邮件时,它不再显示该电子邮件,我会收到下面的错误 我试过: 每次部署前都要更改程序集版本 正在重新启动IIS、SharePoint计时器服务 让我的IT部门在GAC中为我的程序集授予“用户”帐户权限(其他博客建议) 代码: public class EventReceiver1 : SPEmailEventReceiver { /// <sum

在浏览了很多博客之后,我得到了下面的代码。 但是,一旦我通过事件处理程序注册并重新启动SharePoint计时器服务,当我向列表发送电子邮件时,它不再显示该电子邮件,我会收到下面的错误

我试过:

  • 每次部署前都要更改程序集版本
  • 正在重新启动IIS、SharePoint计时器服务
  • 让我的IT部门在GAC中为我的程序集授予“用户”帐户权限(其他博客建议)
代码

public class EventReceiver1 : SPEmailEventReceiver
{
    /// <summary>
    /// The list received an e-mail message.
    /// </summary>       
    public override void EmailReceived(SPList oList, SPEmailMessage oMessage, string strReceiverData)
    {
        SPListItem oListItem = oList.Items.Add();
        oListItem["FaxNumber"] = oMessage.Headers["Subject"];
        //oListItem["Body"] = oMessage.HtmlBody;
        oListItem["MessageBody"] = oMessage.Headers["Subject"];
        oListItem.Update();
    }
}
公共类EventReceiver 1:SPEmailEventReceiver
{
/// 
///列表收到一封电子邮件。
///        
public override void EmailReceived(SPList oList、SPEmailMessage omemessage、string strReceiverData)
{
SPListItem-oListItem=oList.Items.Add();
oListItem[“FaxNumber”]=oMessage.Headers[“Subject”];
//oListItem[“Body”]=oMessage.HtmlBody;
oListItem[“MessageBody”]=oMessage.Headers[“Subject”];
Update();
}
}
错误

public class EventReceiver1 : SPEmailEventReceiver
{
    /// <summary>
    /// The list received an e-mail message.
    /// </summary>       
    public override void EmailReceived(SPList oList, SPEmailMessage oMessage, string strReceiverData)
    {
        SPListItem oListItem = oList.Items.Add();
        oListItem["FaxNumber"] = oMessage.Headers["Subject"];
        //oListItem["Body"] = oMessage.HtmlBody;
        oListItem["MessageBody"] = oMessage.Headers["Subject"];
        oListItem.Update();
    }
}
无法加载文件或程序集“TestEventReceiveProject,版本=1.0.0.0,区域性=中性,PublicKeyToken=defdab4ceab73dcb”或其依赖项之一。系统找不到指定的文件


另外,当我重新启动SP服务时,我收到一个错误“OWSTIMER.EXE[6760]中发生了未处理的异常(System.Security.Cryptographic.CrytographicException')”

打开项目属性窗口。 选择“生成”选项卡 将其更改为“任意CPU” 保存您的更改。 编译项目并部署

如果程序集位于GAC中,并且Visual Studio调试器无法看到调试符号(aka:*.pdb)。除非您在设置所有PDB所在的符号存储区时遇到了麻烦,否则您需要将调试符号放置在与程序集相同的位置。诀窍是在GAC中查找包含DLL的文件夹

c:\windows\assembly文件夹不是真实文件夹,而是虚拟文件夹。要访问真实文件夹,请执行以下操作:

开始»运行 %systemroot%\assembly\gac[输入] 这将打开GAC文件夹。现在,四处查看,直到找到一个类似以下内容的文件夹(您可能需要跳到一个文件夹并跳入MSIL文件夹):[assembly file name-.DLL Extension][assembly version in format of#.#.#].[assembly public key token]

找到该文件夹后,打开它,您将看到您的程序集,并确认您的程序集是否已正确部署。您可以简单地拖放部件

执行和IISreset,重置计时器作业,您就可以再次测试了