我有一個令人沮喪的問題,試圖使用System.DirectoryServices.DirectoryEntry.Invoke()方法來回收遠程IIS服務器上的應用程序池。模仿異常調用DirectoryEntry.Invoke方法
基本上下文是兩臺客戶端計算機和一臺IIS 7.0服務器計算機(Windows 2008 Server)myServer,它們都在同一個Windows域中。我想在客戶機上運行代碼到 回收IIS服務器上的AppPool。
下面是相關的代碼片斷:
的DirectoryEntry的DirectoryEntry =新的DirectoryEntry( 「IIS:// myServer上/ SVC/AppPools/SomeAppPool」,domainUserid,密碼,AuthenticationTypes.Secure);
directoryEntry.Invoke(「Recycle」,null);
從一臺客戶端計算機上,代碼運行成功,但在其他客戶端計算機上,代碼拋出與模擬有關的異常(請參見下文)。 我在兩臺客戶端計算機上以相同的域用戶身份登錄,並在代碼中使用相同的域用戶信息。
我已經檢查了服務器端事件查看器和其他日誌,看看在服務器上處理請求的方式是否存在一些明顯的差異,並且做了大量的搜索而沒有成功。
任何人都可以提供一個線索,以尋找什麼或可以運行哪些診斷(在客戶端計算機上或服務器計算機上)以確定發生這種情況的原因?
感謝您的幫助!馬丁
2011-08-10 22:35:39,478 [10] WARN - ActionRestartIIS:異常重新啓動IIS System.Reflection.TargetInvocationException:異常已被調用的目標拋出 。 ---> System.Runtime.InteropServices.COMException(0x80070542):未提供所需的模擬級別, 或提供的模擬級別無效。 (從HRESULT異常:0x80070542)在System.DirectoryServices.DirectoryEntry.Invoke內部異常堆棧跟蹤--- 的 ---結束(字符串方法名,對象[]參數)
在回答自己的問題的優良傳統,這是我學到的東西。我修改我的代碼以使用System.Management類,這些類似於跨域更好地工作。示例代碼如下: – user304582