这对我有效。
//--------------------------------------------------------------------------------------------------------------------------
public string GetSubDomain()
{
string SubDomain = "";
if (Request.Url.HostNameType == UriHostNameType.Dns)
SubDomain = Regex.Replace(Request.Url.Host, "((.*)(\..*){2})|(.*)", "$2");
if (SubDomain.Length == 0)
SubDomain = "www";
return SubDomain;
}
我假设你想在同一个Web应用程序中处理多个帐户,而不是使用IIS中的工具构建单独的站点。在我们的工作中,我们开始为每个子域创建一个新的网站,但发现这种方法不适用于规模较大的情况 - 特别是当您发布更新后,必须修改数十个站点时!因此,基于多年经验,我建议采用此方法,而不是上面建议的面向服务器的技术,这正是您提出的要做的。
上述代码只是确保这是一个完整的URL(而不是IP地址),并返回子域。它在我们的高负载环境中表现良好。