2011-06-22 208 views
0

我必須使用c#以編程方式回收IIS(版本7.5)應用程序池。當我嘗試使用「ServerManager」類UnauthorizedAccessException引發ApplicationPoolCollection時引發。 我想我必須使用模擬。但我不知道使用模擬。無論如何,使用模擬屬性而不是web.config?IIS應用程序池回收

回答

0

要在IIS中執行任何管理操作(如回收應用程序池,啓動和停止站點,創建網站等),您需要以管理員身份運行。

如果要以編程方式模擬用戶,則需要使用WindowsIdentity.Impersonate方法。

這裏有一個相當不錯的示例代碼片段讓你開始。

當然,在web.config文件(或硬編碼)文件中爲高權限用戶存儲憑證時,所有通常的注意事項都適用於此。

另外,如果您嘗試使用託管的ServerManager API以編程方式訪問IIS,請確保通過執行「以管理員身份運行」來啓動Visual Studio。即使您自己的Windows帳戶是Administrators組的成員,也需要執行此操作。