Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SharePoint自定义计时器作业执行问题_Sharepoint_Sharepoint 2010_Sharepoint 2013_Sharepoint Timer Job - Fatal编程技术网

SharePoint自定义计时器作业执行问题

SharePoint自定义计时器作业执行问题,sharepoint,sharepoint-2010,sharepoint-2013,sharepoint-timer-job,Sharepoint,Sharepoint 2010,Sharepoint 2013,Sharepoint Timer Job,我们在Visual Studio 2012中为SharePoint 2013开发了一个计时器作业。计划在上午7点至7:15之间运行。我们已经使用PowerShell部署了计时器作业。在代码中,我们在timers execute方法的开头添加了PortalLog.LogString来记录SharePoint错误日志中的消息 在SiteCollection下,我们可以看到它已部署并激活。计时器作业的范围在VS中设置为Site。我们可以看到在central admin中的review job defi

我们在Visual Studio 2012中为SharePoint 2013开发了一个计时器作业。计划在上午7点至7:15之间运行。我们已经使用PowerShell部署了计时器作业。在代码中,我们在timers execute方法的开头添加了PortalLog.LogString来记录SharePoint错误日志中的消息

在SiteCollection下,我们可以看到它已部署并激活。计时器作业的范围在VS中设置为Site。我们可以看到在central admin中的review job definitions中部署的计时器作业。但是,无法在计划作业中看到它。当我们通过review job definitions编辑计时器作业并点击“Run Now”(立即运行)时,我们在错误日志中看不到使用PortalLog.LogString编程的任何消息


可能是什么问题?

抱歉-评论时间太长。稍后将进行编辑以表示答案

您必须在这里澄清很多事情:在“网站集”下,我们可以看到它已被部署和激活-您的意思是您有一个网站集功能来部署计时器作业?计时器作业安装在服务器场级别,因此它应该是webapp/farm功能

PortalLog.LogString仅供内部使用:

你试过调试计时器作业吗?由于它已正确部署到作业定义中,并且您可以单击“立即运行”,所以到目前为止,一切看起来都很好。您只需附加到SPTimerV4 SharePoint计时器作业,即可在解决方案中命中断点


您应该使用不同的日志记录,如此处所述:在等待任何日志神奇地出现之前:调试

在我看来,有两个问题:

您应该使用其他方式进行日志记录,这应该是首选方式。使用WriteEvent写入事件日志,或使用WriteTrace写入ULS日志。 正在运行作业。确保所有web服务器上的Owstimer.exe服务都已重新启动,这可以通过此操作完成。我希望您已在powershell脚本或功能接收器中正确计划了作业。
我希望现场机器上有VS。。这就是为什么我不能调试它。。。我可以在dev环境中调试它,它就说到点子上了。日志也出现了。。这不是现场直播。。有什么想法吗?再说一遍:使用不同的日志记录。在您的开发机器上,所有东西都可能安装在同一个帐户下-计时器作业通常在与web应用程序不同的帐户中运行,因此他并不总是能够访问某些内容,例如日志。计时器作业是准SharePoint外部的-可以这样认为,并使用事件日志进行日志记录,或者真正实现ULS日志记录。如果全部失败-使用调试日志记录并启动DebugView以查看日志。我刚刚尝试使用事件查看器示例,在DEV env上,我们可以在事件查看器中看到记录的错误。。但是,在“立即运行”的LIVE env onclick上,事件查看器中没有任何项。。有什么想法吗?计时器作业的作用域是=VS中的站点。尝试在VS中设置要场的作用域,但仍无法查看日志消息。尝试将作用域设置为Web应用程序,但仍无法获取日志消息。。。有什么想法吗?