.net 以编程方式创建子域
我正在寻找一个解决方案,在ASP.NET、ASP.NET MVC和PHP中以编程方式创建子域。具体而言,用户配置文件页面应同时解析:.net 以编程方式创建子域,.net,php,asp.net,asp.net-mvc,subdomain,.net,Php,Asp.net,Asp.net Mvc,Subdomain,我正在寻找一个解决方案,在ASP.NET、ASP.NET MVC和PHP中以编程方式创建子域。具体而言,用户配置文件页面应同时解析:www.domain.com/profilename或http://profilename.domain.com更新特定域的DNS设置,以便*.domain.com都指向同一主机 然后,以编程方式检查并查看所用URL的第一部分是否包含要查找的子域,并相应地采取行动。例如,如果第一部分包含给定的profilename,则从数据库中检索特定的profiles数据集合并将
www.domain.com/profilename
或http://profilename.domain.com
更新特定域的DNS设置,以便*.domain.com都指向同一主机
然后,以编程方式检查并查看所用URL的第一部分是否包含要查找的子域,并相应地采取行动。例如,如果第一部分包含给定的profilename,则从数据库中检索特定的profiles数据集合并将其显示给用户
确保您的web应用程序使用相对链接,这样,如果用户使用子域到达站点,您就不会将其重定向到其他位置。没有创建子域的通用方法。您需要调用ISP或DNS提供商提供的API——通常是SOAP或REST 或者使用通配符域(*) 在IIS端,请确保配置应用程序,使其不使用主机头。您可以尝试:
AppDomain subDomain = AppDomain.CreateDomain("ProfileUserDomain");
尽管您可能必须配置DNS以允许来自代码的请求。动态DNS服务可能是您的答案。每个这样做的站点都使用通配符域。实际上,创建单个DNS条目将意味着长时间的DNS传播延迟、疯狂膨胀的区域文件等。这取决于您需要多少子域(OP没有指定)。通配符并不总是最好的方法,特别是当您关心可伸缩性时。这里有一个链接指向一个示例API,该API用于创建一个托管DNS服务提供的新子域:这个问题确实无法回答。你最好一次只处理一部分。DNS设置、.NET代码、PHP代码等…是的,你是对的,我不是在寻找解决方案,而是想知道它是如何完成的。。。尽管我期待着为HttpModuleHandlers编写一些代码,以及asp.net 4中的新路由属性。。但我想更多有趣的答案会贴在这里:)谢谢你的回答。您有关于在IIS上配置动态DNS服务的任何信息吗?我不知道如何将动态DNS软件添加到您的Web服务器或windows服务器上,但希望使用专用服务器上的帐户可以帮助您:谢谢!正是我要找的。