リボン ボタンを使用してリストからタイマー ジョブを実行しようとしていますが、ボタンをクリックするとページがポップアップします。そのページの読み込みで、runwithelevatedprivileges とjob.runnow()
. 実稼働環境でアクセス拒否の例外が発生していますが、システム テストでは問題なく動作していました。次のコードを参照してください。
SPWebApplication mainWebApp = SPContext.Current.Site.WebApplication;
bool b = mainWebApp.RunningJobs.Cast<SPRunningJob>().Any(curRunningJob => curRunningJob
.JobDefinitionTitle.Equals("JobName"));
try
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
SPJobDefinition job = mainWebApp.JobDefinitions.Cast<SPJobDefinition>().
FirstOrDefault(i => i.DisplayName.Equals("JobName"));
SPContext.Current.Web.AllowUnsafeUpdates = true;
job.RunNow();//getting access denied exception at this line