これは私のために働く:
//--------------------------------------------------------------------------------------------------------------------------
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;
}
IIS のツールを使用して個別のサイトを構築するのではなく、同じ Web アプリケーション内で複数のアカウントを処理したいと考えていると思います。私たちの仕事では、サブドメインごとに新しい Web サイトを作成することから始めましたが、このアプローチはうまく拡張できないことがわかりました。特に、更新をリリースしてから数十のサイトを変更する必要がある場合です。したがって、あなたが提案したことを正確に実行してきた数年間の経験に基づいて、上記で提案したサーバー指向の手法ではなく、このアプローチをお勧めします。
上記のコードは、これが (たとえば、IP アドレスではなく) 完全な形式の URL であることを確認し、サブドメインを返します。かなり大量の環境でうまく機能しています。