在许多博客之后,我有以下代码。 但是,一旦我通过事件处理程序注册并重新启动SharePoint Timer服务,当我向列表发送电子邮件时,它不再显示该电子邮件,我收到以下错误。
我试过了:
代码:
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中出现未处理的异常(System.Security.Cryptography.CrytographicException')[6760]”
答案 0 :(得分:0)
打开项目属性窗口。 选择Build选项卡 将其更改为“任何CPU” 保存更改。 编译项目并部署
如果程序集在GAC中,并且Visual Studio调试器无法看到调试符号(又名:* .pdb)。除非您已经完成了设置所有PDB所在的符号存储的麻烦,否则您需要将调试符号放在与程序集相同的位置。诀窍是在GAC中找到包含DLL的文件夹。
c:\ windows \ assembly文件夹不是真正的文件夹,而是虚拟文件夹。要访问REAL文件夹,请执行以下操作:
开始»跑步 %systemroot%\ assembly \ gac [ENTER] 这将打开GAC文件夹。现在,直到你找到一个看起来像这样的文件夹(你可能需要跳过一个文件夹并潜入MSIL文件夹):[程序集文件名-.DLL扩展] [程序集版本的格式为#。#。#。 。#] __ [程序集公钥标记]。
当您找到该文件夹时,打开它,您将看到您的组件,您将确认您的组件是否已正确部署。您只需拖放程序集
即可执行和IISreset,重置计时器作业,你可以再次测试