假設我有一個在服務器端運行的作業,同一作業中的一行需要在客戶端運行,是否可以實現?當我嘗試批量運行全局類中的WeekofYear方法時,它不會執行(導致它調用WINApi類方法,該方法只能在客戶端上運行)。在服務器端運行的作業需要調用在客戶端運行的方法
KIndly Assist。
假設我有一個在服務器端運行的作業,同一作業中的一行需要在客戶端運行,是否可以實現?當我嘗試批量運行全局類中的WeekofYear方法時,它不會執行(導致它調用WINApi類方法,該方法只能在客戶端上運行)。在服務器端運行的作業需要調用在客戶端運行的方法
KIndly Assist。
我只能建議你創建一個新的方法,例如Global::weekOfYearServer
並確保所有WinAPI調用都在服務器上執行 - 您可以嘗試在WinAPIServer
類中創建適當的方法。
將RunBaseBatch中的runsImpersonated()方法設置爲false是可行的。我試圖做到這一點,它的工作原理。但我不認爲它是一個好主意,像Skaue所建議的那樣與框架類討論。 – piku 2011-03-15 13:32:44
你可以這樣做,但當然你不應該修改'RunBaseBatch.runsImpersonated',而是在你的類中創建一個新的方法:'public boolean runsImpersonated(){return false; } - 它會指示批處理框架在客戶端上運行這個類。 – 10p 2011-03-15 14:42:54
非常感謝10p。我所做的是在我的類BatchJobTry(擴展RunBaseBatch)我重寫了方法runsImpersonated()並刪除了超級調用,返回false,它完美無瑕地執行。所以我得出的結論是,這取決於我的操作需求(無論是運行客戶端還是服務器端)的方法,並確保整個作業在客戶端或服務器端運行,或兩者都運行。再次感謝(糾正我,如果我錯了) – piku 2011-03-15 18:07:37
我沒有問題從服務器運行'weekofYear'。請澄清你遇到的問題。 – 10p 2011-03-15 12:51:39
WeekofYear當我在批處理中運行時出現錯誤「服務器端模擬(RunAs)會話嘗試調用可用於客戶端處理的方法」 – piku 2011-03-15 12:55:04