我正在C#中开发 SharePoint 2010计时器作业,用于更新从SQL数据库检索的员工状态(无论他们当前是否可用还是远离工作),以便更新并存储在Employees SharePoint中list(所需的方法是能够访问我选择的任何列表,而不仅仅是一个指定/硬编码列表)。我创建了一个SharePoint空项目,其唯一的功能是计时器作业,我的事件接收器类具有FeatureActivated和FeatureDeactived方法中的自定义代码。计时器作业类的Execute方法使用SqlClient获取数据并将其存储到字典对象中,该对象的键值为Employee ID,其值为状态。然后,该字典用于检索Employees SharePoint列表中的员工记录并更新状态。
我的问题是,无论我为计时器作业选择了什么范围,我都无法访问我想要的任何SharePoint列表。我曾尝试使用SPWeb和SPSite对列表的URL进行硬编码。我检查了我的网站的sitecollection,我有2个网站集(“/”,“testsitecollection”),第二个没有使用。
例如“ SPWeb web = site.OpenWeb(); SPList list = web.Lists [“Employees”];
抛出异常:“{3}}”无法找到“列出”员工“
我想知道是否有人对此事有任何意见。在源代码方面,我遵循网络上的许多示例,例如:http://www.mysite
我在网络上找到的所有自定义计时器作业的示例都更新了前端站点上的列表,例如“任务”列表。
感谢任何增加输入的人。
答案 0 :(得分:1)
我有同样的问题,我发现它对我有用: 您应该重新启动OWSTimer.exe(控制面板中的窗口服务 - >管理工具 - >服务)。您可能正在应用更改,但Sharepoint计时器服务尚未获取最新代码