【发布时间】:2009-05-26 19:11:39
【问题描述】:
如何通过代码创建新网站或将主机标头添加到现有 IIS 7 服务器?
我已经查看但无法找到一个有效的示例?
【问题讨论】:
-
你能试着更具体地解释一下你想要做什么吗? “IIS7 添加新网站/Host Header ASP.NET Web Form”只是一堆关键词。
-
我需要以编程方式在 asp.net 网络表单应用程序中添加新网站/主机头。
如何通过代码创建新网站或将主机标头添加到现有 IIS 7 服务器?
我已经查看但无法找到一个有效的示例?
【问题讨论】:
一种解决方案是创建一个自定义 HttpModule 来为您工作,但它确实要求您拥有一个支持通配符 (*) 的 DNS。如果您的 DNS 不支持,您可以考虑管理自己的 DNS。
也就是说,这里有一篇关于创建 HttpModule 的好帖子,它解析传入的“子域”并将流量转发到适当的位置。他正在使用一种搜索机制[查找关键字与子域匹配的内容],但可以根据您自己的需要进行修改。
http://codebetter.com/blogs/brendan.tompkins/archive/2006/06/27/146875.aspx
[编辑] 另一种解决方案是找到提供可编程 DNS 服务的 DNS 提供商,可能通过 Web 服务。然后,您可以在应用程序需要时以编程方式将子域添加到该 DNS。这是一个超级简化的解释,并没有考虑到您的业务需求。我个人更喜欢在应用程序中添加子域的 HttpModule 选项,因为它需要对所涉及的服务器进行较少的修改。
【讨论】:
您使用的是什么版本的 .Net?
如果您使用的是 .Net 3.0 或 3.5,并且只需要配置 IIS7(不是 6 或 5),请查看 Microsoft.Web.Administration 命名空间——它应该有您需要的一切。
如果您使用的是旧版本的 .net,请查看 WMI。
我没有任何 IIS 7 的 WMI 代码(我们有一个 Intranet 应用程序的设置,但它使用与 IIS 6 兼容的 WMI)。但是,这里有一个工具的链接,您可以使用它来找出 WMI 的东西:http://www.microsoft.com/downloads/details.aspx?familyid=2cc30a64-ea15-4661-8da4-55bbc145c30e&displaylang=en 它实际上会生成用于操作 WMI 的 c#(或 vb.net)代码。对于 IIS 7,我认为根 WMI 命名空间是 root\WebAdministration。
另外,看看这个链接,它可能会帮助Get to Know the IIS 7.0 WMI Provider Using CIM Studio
【讨论】: