Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 以编程方式将主机头添加到IIS 7上的网站_Asp.net_C# 4.0_Iis 7_Directoryservices_Hostheaders - Fatal编程技术网

Asp.net 以编程方式将主机头添加到IIS 7上的网站

Asp.net 以编程方式将主机头添加到IIS 7上的网站,asp.net,c#-4.0,iis-7,directoryservices,hostheaders,Asp.net,C# 4.0,Iis 7,Directoryservices,Hostheaders,我想通过一个web应用程序(asp.net 4.0/C#)向正在处理IIS7的网站添加一个主机头。internet上有一些例子,但我想大多数都不处理IIS7。 (注意:web应用程序托管在同一台服务器上,因此我想在更改iis配置时不会出现安全问题) 非常感谢您的帮助,谢谢我找到了这个解决方案,它适合我。这是一个带有两个参数的小功能,您只需在iss配置中找到您网站的id。之后,您必须提供服务器(iis)的ip地址和端口号,和hostname,它将使用您输入的参数添加hostheader AddHo

我想通过一个web应用程序(asp.net 4.0/C#)向正在处理IIS7的网站添加一个主机头。internet上有一些例子,但我想大多数都不处理IIS7。 (注意:web应用程序托管在同一台服务器上,因此我想在更改iis配置时不会出现安全问题)


非常感谢您的帮助,谢谢

我找到了这个解决方案,它适合我。这是一个带有两个参数的小功能,您只需在iss配置中找到您网站的id。之后,您必须提供服务器(iis)的ip地址和端口号,和hostname,它将使用您输入的参数添加hostheader

AddHostHeader(2,“127.0.0.1:81”,81,“NewHostHeader”)

(注意:不要忘记使用添加到页面。) System.DirectoryServices;使用Microsoft.Web.Administration;)


对于我来说,上述解决方案与IIS7.5不太兼容。 我最终不得不这么做

这个问题可能对你有所帮助,我想你还不够清楚。你能提供更多细节吗?是否要添加/更改绑定?Windows 8 IIS 7.5 System.Runtime.InteropServices.ComeException发生在System.DirectoryServices.DirectoryEntry.Bind上。可能需要检查一些凭据设置,听起来好像不允许IUSR用户在IIS中向网站添加标题。错误。。我最终用这个来完成它
  static void AddHostHeader(int? websiteID, string ipAddress, int? port, string hostname)
    {
        using (var directoryEntry = new DirectoryEntry("IIS://localhost/w3svc/" + websiteID.ToString()))
        {
            var bindings = directoryEntry.Properties["ServerBindings"];
            var header = string.Format("{0}:{1}:{2}", ipAddress, port, hostname);
            if (bindings.Contains(header))
              throw new InvalidOperationException("Host Header already exists!");
            bindings.Add(header);
            directoryEntry.CommitChanges();
        }
    }