C# IIS上的域宿主

C# IIS上的域宿主,c#,asp.net,wcf,iis,C#,Asp.net,Wcf,Iis,我已经为IIS上的主机域编写了一个WCF服务,并将该WCF服务托管到IIS。我的代码是 public bool HostWebsiteToIIS(string DomainName) { bool Hosted = false; try { string DomainNameRecord = ""; if (DomainName.ToLow

我已经为IIS上的主机域编写了一个WCF服务,并将该WCF服务托管到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属性对话框中,单击确定

但这对我不起作用
请提供帮助

Microsoft.Web.Administration
API要求在目标IIS计算机上具有管理员权限的帐户下运行代码


在您的情况下,错误消息只是指示执行帐户没有这样的权限。它引用的文件是IIS的applicationHost.config,而不是您的web.config。更改该文件的NTFS权限是无用的。

单击应用程序池->右键单击WCF服务托管->转到高级设置->在进程内选择标识->将“应用程序池”更改为“本地系统”它可以工作。

嘿,Lex,我只使用管理员凭据打开了VS和IIS,仍然有相同的设置exception@Aakash然后替换具有要管理的IIS服务器的有效主机名或IP地址的“主机”。主机“这只是我在这里给出的一个示例,但我的IP地址是正确的,这个问题是因为WCF服务吗?@Aakash池标识是什么?您是否使用自己的IIS服务器管理员帐户?当你在IIS上托管代码时,以管理员身份运行VS是无用的。你能给我一些建议吗?我应该如何处理“由于权限不足而无法读取配置文件”。我的池标识是ApplicationPoolIdentity,作为集成的托管管道最后一点您应该注意的是,在本地系统下运行web应用程序可能会增加安全风险。咨询安全专家,了解您需要采取哪些措施以将影响降至最低。(复制以警告读者)