Asp.net 以编程方式将主机头添加到IIS 7上的网站
我想通过一个web应用程序(asp.net 4.0/C#)向正在处理IIS7的网站添加一个主机头。internet上有一些例子,但我想大多数都不处理IIS7。 (注意:web应用程序托管在同一台服务器上,因此我想在更改iis配置时不会出现安全问题)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
非常感谢您的帮助,谢谢我找到了这个解决方案,它适合我。这是一个带有两个参数的小功能,您只需在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();
}
}