簡體   English   中英

使用模擬自動創建IIS7網站(使用Microsoft.Web.Administration)

[英]Automating IIS7 Website creation using impersonation (with Microsoft.Web.Administration)

我正在嘗試使用此代碼在IIS中創建一個網站(來自同一服務器上的另一個站點)

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錯誤。

模擬正確用戶或指定用戶運行管理器的最佳方法是什么?

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

或者,您可以通過將這些元素添加到Web.config中的<system.web>部分來啟用ASP.NET模擬:

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

...並為IIS應用程序啟用Windows Authentication 但通常不建議這樣做(參見: http//www.hanselman.com/blog/AvoidUsingImpersonationInASPNET.aspx )。

可能是您的IISExpress文件夾是由您的用戶編寫的,如果您以管理員身份打開Visual,則無權訪問該文件...

C:\\ Users ::您的用戶:: \\ Documents \\ IISExpress \\ config

  1. 轉到該文件夾
  2. 選擇所有文件
  3. 右鍵單擊所選文件
  4. 單擊“屬性”上下文菜單
  5. 點擊“高級...”
  6. 刪除“加密內容以保護數據”中的復選框
  7. 單擊確定

然后再試一次......它對我有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM