2010-03-19 111 views
1

我想創建一個虛擬目錄並使用IIS7和C#設置它的權限。這裏是我的代碼示例:創建虛擬目錄並設置權限IIS7 - 由於權限不足,無法讀取配置文件

using (ServerManager serverManager = new ServerManager(webSite)) 
{ 
    ConfigurationSection anonymousAuthenticationSection = 
     config.GetSection(
      @"system.webServer/security/authentication/anonymousAuthentication", 
      webSite); 
    anonymousAuthenticationSection["enabled"] = true; 

    serverManager.CommitChanges(); 
    return "true"; 
} 

這會拋出一個異常消息是:

Cannot read configuration file due to insufficient permissions.

有人能幫忙嗎?

編輯

與管理權限運行給了我一個新的錯誤:「啓用讀取配置文件」誰能告訴我這配置應該讀,我怎麼能訪問它?

+0

你在使用Window Vista嗎?很可能你必須從控制面板禁用UAC。 – wonde 2010-03-20 04:11:21

+0

Server 2008 64。 – Nick 2010-03-22 22:36:07

回答

0

我錯誤地使用了ServerManager obj。它並不期待構造函數中的網站名稱。以下是在IIS7中設置匿名訪問的正確方法。

using (ServerManager serverManager = new ServerManager()) 
       { 
        Configuration config = serverManager.GetApplicationHostConfiguration(); 
        ConfigurationSection anonymouseAuthenticationSetion =           config.GetSection("system.webServer/security/authentication/anonymousAuthentication", webSite); 
        anonymouseAuthenticationSetion["enabled"] = true; 
0

這聽起來像您的應用程序沒有正確的權限。爲了能夠操作IIS7的配置,您的應用程序所運行的帳戶必須是管理員帳戶,或者受可信計算庫(例如SYSTEM帳戶)識別的帳戶。

如果您在Visual Studio中調試此功能,請務必使用Explorer中的「以管理員身份運行」功能或從快速啓動工具欄啓動Visual Studio。

相關問題