2011-03-15 88 views
0

假设我有一个在服务器端运行的作业,同一作业中的一行需要在客户端运行,是否可以实现?当我尝试批量运行全局类中的WeekofYear方法时,它不会执行(导致它调用WINApi类方法,该方法只能在客户端上运行)。在服务器端运行的作业需要调用在客户端运行的方法

KIndly Assist。

+0

我没有问题从服务器运行'weekofYear'。请澄清你遇到的问题。 – 10p 2011-03-15 12:51:39

+0

WeekofYear当我在批处理中运行时出现错误“服务器端模拟(RunAs)会话尝试调用可用于客户端处理的方法” – piku 2011-03-15 12:55:04

回答

3

我只能建议你创建一个新的方法,例如Global::weekOfYearServer并确保所有WinAPI调用都在服务器上执行 - 您可以尝试在WinAPIServer类中创建适当的方法。

+1

将RunBaseBatch中的runsImpersonated()方法设置为false是可行的。我试图做到这一点,它的工作原理。但我不认为它是一个好主意,像Skaue所建议的那样与框架类讨论。 – piku 2011-03-15 13:32:44

+0

你可以这样做,但当然你不应该修改'RunBaseBatch.runsImpersonated',而是在你的类中创建一个新的方法:'public boolean runsImpersonated(){return false; } - 它会指示批处理框架在客户端上运行这个类。 – 10p 2011-03-15 14:42:54

+0

非常感谢10p。我所做的是在我的类BatchJobTry(扩展RunBaseBatch)我重写了方法runsImpersonated()并删除了超级调用,返回false,它完美无瑕地执行。所以我得出的结论是,这取决于我的操作需求(无论是运行客户端还是服务器端)的方法,并确保整个作业在客户端或服务器端运行,或两者都运行。再次感谢(纠正我,如果我错了) – piku 2011-03-15 18:07:37

相关问题