我有一个Event Receiver
附加到项目列表中的一些更改。这个事件接收器会做一些消耗大量过程的事情。我想在进程下运行它OWSTIMER.EXE
而不是W3WP.EXE
,似乎在Sharepoint 2013
事件接收器下运行W3WP.EXE
。我发现这个问题是因为我想做同样的事情,但没有人回答。由于我想要运行的不同进程的问题,我创建了TimerJob
一种查看列表中的项目并执行与之前第一个事件接收器相同的操作的方法。这是有效的,并且正在运行OWSTIMER.EXE
我想要的方式。现在,我想做的是,从我的旧事件接收器(不是我创建来运行这个 timerJob 的那个,就像在示例中一样)执行那个 TimerJob,只是因为这个列表不会经常改变,我想要进程运行,当它改变时。(我想要的东西是破解SharePoint
运行Event Receiver
in OWSTIME.EXE
)
我可以这样做吗?
提前致谢。
在示例中,事件接收器:
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
try
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
SPWebApplication parentWebApp = (SPWebApplication)properties.Feature.Parent;
SPSite site = properties.Feature.Parent as SPSite;
DeleteExistingJob(JobName, parentWebApp);
CreateJob(parentWebApp);
});
}
catch (Exception ex)
{
throw ex;
}
}
我的Event Receiver
(继续运行w3wp.exe
):
public override void ItemUpdated(SPItemEventProperties properties)
{
base.ItemAdded(properties);
//here it does the same that do the Timer Job(but with that item)
//here I want to execute my TimerJob. This is possible?
}