2011-07-26 57 views
0

我試圖在IIS中創建使用此代碼(從其他網站在同一臺服務器上)網站自動化IIS7網站創建使用模擬(與Microsoft.Web.Administration)

using Microsoft.Web.Administration; 
//... 
ServerManager manager = new ServerManager(); 
manager.Sites.Add(Host, "http", ":80:" + Host, Path); 
//... 

,但我得到這個例外:

消息:文件名:redirection.config 錯誤:無法讀取配置文件,由於權限不足

我已經試過這樣的模擬:http://www.codeproject.com/KB/cs/zetaimpersonator.aspx 但日我得到一個醜陋的COM錯誤。

什麼是模仿正確的用戶或指定用戶運行管理器的最佳方式。

回答

3

爲了使用ServerManager API,您需要成爲正在管理的計算機上的本地管理員。由於您的代碼是在IIS應用程序的上下文中運行的,因此您需要將此應用程序的應用程序池標識更改爲管理用戶(IIS 7.x上的默認標識爲ApplicationPoolIdentity,這是非特權用戶)。

或者,您也可以通過添加這些元素在Web.config的<system.web>部分啓用ASP.NET模擬:

<authentication mode="Windows" /> 
<identity impersonate="true" /> 

...並通過啓用Windows Authentication的IIS應用程序。但通常不建議這樣做(請參閱:http://www.hanselman.com/blog/AvoidUsingImpersonationInASPNET.aspx)。

0

這可能是因爲你的IISExpress文件夾encripted與您的用戶,如果你打開可視作爲管理員,將沒有權限訪問該文件...

C:\用戶::您的用戶:: \文檔\ IISExpress \ CONFIG

  1. 轉到該文件夾​​
  2. 選擇所有文件
  3. 右鍵單擊在選定的文件
  4. 單擊 「屬性」 上下文菜單
  5. 單擊「高級」
  6. 中取消選中「加密內容以便保護數據」
  7. 單擊確定

,然後再試一次...它爲我工作。

相關問題