Задание, работающее на стороне сервера, должно вызывать метод, который выполняется на стороне клиента.

Предположим, у меня есть задание, которое выполняется на стороне сервера, и строка в том же задании должна выполняться на стороне клиента. Можно ли этого добиться? Когда я пытаюсь запустить метод WeekofYear в глобальном классе в пакетном режиме, он не выполняется (потому что он вызывает методы класса WINApi, которые могут выполняться только на клиенте).

Любезно помочь.


person piku    schedule 15.03.2011    source источник
comment
У меня нет проблем с запуском weekofYear с сервера. Пожалуйста, уточните проблему, с которой вы столкнулись.   -  person 10p    schedule 15.03.2011
comment
WeekofYear, когда я запускаю в пакетном режиме, я получаю сообщение об ошибке. Сеанс олицетворения на стороне сервера (RunAs) пытался вызвать метод, доступный только для обработки на стороне клиента.   -  person piku    schedule 15.03.2011


Ответы (1)


Я могу только предложить вам создать новый метод, например. Global::weekOfYearServer и убедитесь, что все вызовы WinAPI выполняются на сервере — вы можете попробовать создать соответствующие методы в классе WinAPIServer.

person 10p    schedule 15.03.2011
comment
возможно ли установить для метода runImpersonated() в RunBaseBatch значение false. Я пробовал так делать, работает. Но я не думаю, что это хорошая идея - использовать классы фреймворка, как предложил Скауэ. - person piku; 15.03.2011
comment
Вы можете сделать это, но, конечно, вам не следует изменять RunBaseBatch.runsImpersonated, а лучше создать новый метод в своем классе: public boolean runsImpersonated() { return false; } — он даст указание пакетной среде запустить этот класс на клиенте. - person 10p; 15.03.2011
comment
большое спасибо 10р. Что я сделал, так это то, что в моем классе BatchJobTry (расширяет RunBaseBatch) я переопределил метод runImpersonated() и удалил вызов super, вернул false, и он выполнился безупречно. Итак, я пришел к выводу, что это зависит от моих потребностей в манипулировании (независимо от того, запускать ли на стороне клиента или на стороне сервера) методы и убедиться, что вся работа полностью выполняется либо на стороне клиента, либо на стороне сервера, либо на обоих. Еще раз большое спасибо. (поправьте меня, если я ошибаюсь) - person piku; 15.03.2011
comment
Я рад, что я прав. спасибо за ссылку. счастливое кодирование. - person piku; 16.03.2011
comment
Вы можете использовать встроенную функцию wkofyr(), но только если вы согласны с тем, что первая неделя - это неделя с первым четвергом! - person Jan B. Kjeldsen; 24.03.2011