2016-02-05 251 views
2

我已經寫了一個WCF服務到IIS上的主機域名,並且我已經將該WCF服務託管給了IIS。我的代碼是IIS上的域名託管

public bool HostWebsiteToIIS(string DomainName) 
     { 
      bool Hosted = false; 
      try 
      { 
       string DomainNameRecord = ""; 

       if (DomainName.ToLower().Contains(".com")) 
       { 
        DomainNameRecord = "www." + DomainName.ToLower(); 

       } 
       else{ 
        DomainNameRecord = "www." + DomainName.ToLower()+".com"; 

       } 
       using (ServerManager manager = ServerManager.OpenRemote("Host")) 
       { 
        manager.Sites["Default Web Site"].Bindings.Add("*:80:" + DomainNameRecord, "http"); 
        manager.CommitChanges(); 

        Hosted = true; 
       } 
       return Hosted; 
      } 
      catch 
      { 
       return Hosted; 
      } 
     } 

這個方法我已經在我的WCF使用,但這是拋出異常的

無法讀取配置文件,由於權限不足

我試過以下步驟

在Windows資源管理器中,找到與該網站關聯的web.config文件。 右鍵單擊web.config文件 單擊屬性。 單擊安全選項卡,然後單擊編輯。 點擊添加。 在輸入要選擇的對象名稱框中,鍵入computername \ IIS_IUSRS,單擊檢查名稱,然後單擊確定。 注意Computername是計算機名稱的佔位符。 單擊以選中讀取複選框,然後單擊確定。 在Web.config屬性對話框中,單擊確定。

但是這不是爲我工作 請幫助您使用

回答

1

Microsoft.Web.Administration API需要的代碼到具有管理員權限在目標IIS計算機的帳戶下運行。

就您的情況而言,錯誤消息僅表示執行帳戶沒有此權限。它引用的文件是IIS的applicationHost.config,而不是web.config。更改該文件的NTFS權限是無用的。

+0

嘿,Lex,我只用Admin Credential打開VS和IIS,仍然有相同的異常 – Aakash

+0

@Aakash然後用您想要管理的IIS服務器的有效主機名或IP地址替換「Host」。 –

+0

「主機」只是我在這裏給出的例子的一個演示,但我在我的末端有正確的IP地址,這個問題是因爲WCF服務? – Aakash

0

點擊應用程序池 - >右鍵單擊WCF服務託管 - >轉到高級設置 - >在進程內選擇身份 - >將「應用程序池」更改爲「本地系統」它的工作原理。

+0

您應該注意的最後一件事是在本地系統下運行Web應用程序可能會引發安全風險。請諮詢安全專家,瞭解您需要採取哪些措施以儘可能減少影響。 (複製它以警告讀者) –