SharePoint 2010 电子邮件事件处理程序生成错误"Could not load file or assembly...",列表停止工作



跟随许多博客,我有下面的代码。然而,一旦我通过事件处理程序注册并重新启动SharePoint定时器服务,当我向列表发送电子邮件时,它不再显示电子邮件,我得到下面的错误。

我试着:

  • 每次部署前更改程序集版本。
  • 重启IIS, SharePoint Timer服务。
  • 让我的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();
    }
}
误差

:

无法加载文件或程序集'TestEventReceiverProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=defdab4ceab73dcb'或其依赖项之一。系统找不到指定的文件

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

打开项目属性窗口。选择Build选项卡将其更改为"任意CPU"保存更改。编译项目并部署

如果程序集在GAC中,而Visual Studio调试器看不到调试符号(又名:*.pdb)。除非您麻烦地设置了存放所有pdb的符号存储库,否则您需要将调试符号放在与程序集相同的位置。诀窍是在GAC中找到包含DLL的文件夹。

c:windowsassembly文件夹不是一个真正的文件夹,它是一个虚拟文件夹。要进入REAL文件夹,请执行以下操作:

开始»运行% systemroot % 会议 gac(输入)这将打开GAC文件夹。现在,四处看看,直到找到一个类似这样的文件夹(您可能需要跳到一个文件夹并进入MSIL文件夹):[程序集文件名-.DLL扩展名][程序集版本,格式为#.#.#。#]__[集合公钥令牌].

当你找到那个文件夹时,打开它,你会看到你的程序集,你会确认你的程序集是否被正确部署。您可以简单地拖放程序集

执行和重置,重置定时器工作,你就可以再次测试了

相关内容

最新更新