[英]How do I manipulate Handler Mappings cleanly in IIS7 using the Microsoft.Web.Administration namespace?
[英]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
然后再試一次......它對我有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.