我想通过 Web 应用程序(asp.net 4.0 / C#)将主机标头添加到在 IIS7 上运行的网站。互联网上有一些示例,但我想它们中的大多数不适用于 iis7。(注意:Web 应用程序托管在同一台服务器上,所以我想在更改 iis 配置时不会出现安全问题)
任何帮助表示赞赏,谢谢
我想通过 Web 应用程序(asp.net 4.0 / C#)将主机标头添加到在 IIS7 上运行的网站。互联网上有一些示例,但我想它们中的大多数不适用于 iis7。(注意:Web 应用程序托管在同一台服务器上,所以我想在更改 iis 配置时不会出现安全问题)
任何帮助表示赞赏,谢谢
我找到了这个解决方案,它对我有用。这是一个带有几个参数的小功能,只是你必须在你的 iss 配置中找到你的网站的 id。之后你必须提供服务器的 ip 地址(iis),并且端口号和主机名到函数,它将使用您输入的参数添加主机头。例如
AddHostHeader(2, "127.0.0.1:81", 81, "newsHostHeader");
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();
}
}
(注意:不要忘记使用 System.DirectoryServices 添加到页面;使用 Microsoft.Web.Administration;)
上面的解决方案对我来说不太适用于 IIS7.5。我最终不得不这样做 http://www.iis.net/configreference/system.applicationhost/sites/site/bindings/binding