2016-02-05 124 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应用程序可能会引发安全风险。请咨询安全专家,了解您需要采取哪些措施以尽可能减少影响。 (复制它以警告读者) –