DLL 伺服器需求
雖然大部分 DLL 都可以在 Surrogate 中執行,但某些 DLL 無法執行。
如果您想要使用系統提供的 Surrogate,DLL 必須表現良好。 例如,呼叫從客戶端註冊回呼的方法的 DLL 會嘗試叫用這些回呼,就好像它收到的函式指標是在其位址空間中的指示,這不是這種情況。 同樣地,使用預期用戶端存取之全域變數的 DLL 將無法運作。 一般而言,無法正確封送處理的參數會防止 DLL 伺服器在用戶端進程外部執行。 在許多情況下,您可以撰寫專為補償「不良」行為而設計的自定義代理。 (如需詳細資訊,請參閱 撰寫自定義代理。
如果 DLL 伺服器使用自訂介面,您必須確保封送處理程式碼可供這些介面使用。 例如,您可以建置和註冊 Proxy DLL,或提供並註冊類型庫,以允許伺服器在代理中執行時正常運作。
DLL 伺服器只會載入至在適當安全性內容中執行的代理進程。 DLL 伺服器代理的安全性內容是以與 EXE 伺服器相同的方式來決定。 DLL 伺服器代理會在與用戶端相同的安全性內容中執行,除非決定安全性內容的 RunAs 值是在伺服器的 AppID 登錄區段中設定。
相關主題