Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/27.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.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
.net 我正在尝试使用功能区按钮从列表运行计时器作业,单击按钮会弹出一个页面,但访问被拒绝_.net_Sharepoint_Sharepoint Timer Job - Fatal编程技术网

.net 我正在尝试使用功能区按钮从列表运行计时器作业,单击按钮会弹出一个页面,但访问被拒绝

.net 我正在尝试使用功能区按钮从列表运行计时器作业,单击按钮会弹出一个页面,但访问被拒绝,.net,sharepoint,sharepoint-timer-job,.net,Sharepoint,Sharepoint Timer Job,我正在尝试使用一个功能区按钮从列表运行计时器作业,单击按钮会弹出一个页面。在该页面加载中,我为runwithelevatedprivileges和job.runnow()。我在生产环境中遇到了拒绝访问异常,但在系统测试中运行良好。请参阅以下代码: SPWebApplication mainWebApp = SPContext.Current.Site.WebApplication; bool b = mainWebApp.RunningJobs.Cast<SPRunningJob>

我正在尝试使用一个功能区按钮从列表运行计时器作业,单击按钮会弹出一个页面。在该页面加载中,我为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 
SPWebApplication mainWebApp=SPContext.Current.Site.WebApplication;
bool b=mainWebApp.RunningJobs.Cast().Any(curRunningJob=>curRunningJob
.JobDefinitionTitle.Equals(“JobName”);
尝试
{
SPSecurity.runWithLevelatedPrivileges(委托()
{
SPJobDefinition job=mainWebApp.JobDefinitions.Cast()。
FirstOrDefault(i=>i.DisplayName.Equals(“作业名”);
SPContext.Current.Web.AllowUnsafeUpdates=true;
job.RunNow();//此行出现拒绝访问异常
TimerJobs是场(configdb)项。
因此,要使用它们,您必须是服务器场管理员。这意味着当前用户必须是服务器场管理员(根据您使用的身份验证方法,您甚至可能会遇到挑战)。
或者运行web应用程序的应用程序池的服务帐户必须是服务器场管理员,并使用RunWithLevelatedPrivileges,出于明显的安全原因,这是一个糟糕的想法。
或者,您需要将某个服务器场管理员存储在某个位置,并从中创建上下文(这对安全性、性能和可维护性也不利)。
我强烈建议您检查您的解决方案,以避免需要从web界面触发timerjobs。

timerjobs是场(configdb)项。
因此,要使用它们,您必须是服务器场管理员。这意味着当前用户必须是服务器场管理员(根据您使用的身份验证方法,您甚至可能会遇到挑战)。
或者运行web应用程序的应用程序池的服务帐户必须是服务器场管理员,并使用RunWithLevelatedPrivileges,出于明显的安全原因,这是一个糟糕的想法。
或者,您需要将某个服务器场管理员存储在某个位置,并从中创建上下文(这对安全性、性能和可维护性也不利)。

我强烈建议您检查您的解决方案,以避免从web界面触发TimerJob。

首先,从页面运行作业不是一个好主意,而是编写共享代码。我认为问题在于用户权限,与用户连接到作业页面并尝试运行作业。首先,从页面运行作业不是一个好主意,w我认为问题在于用户权限,与用户连接到作业页面并尝试运行作业。