IIS ディレクトリの変更に関する Yizui Jie Qianchou の記事の Asp.Net バージョンを読んだ後、以前にコードを使用して IIS にホスト ヘッダーを追加することを考えたことがあると思いましたが、勉強したことはありませんでした。今日、興味を利用して決定しました。この問題を解決するには。
ブログ Web サイトの場合、ユーザーにセカンダリ ドメイン名のサポートを提供する必要があり、Web プログラムが既定のサイトで実行されない場合は、ユーザーの登録時にコードを通じて対応するホスト ヘッダーを IIS に追加する必要があります。
この問題は、IIS のコードでホスト ヘッダーを追加するという Google 検索を通じて解決されました。テストの結果、この方法が実行可能であることが確認され、コードにいくつかの改善が加えられました。この内容が一部の友人に役立つことを考慮して書きました。この記事。
コードは次のとおりです。
static void Main(string[] args)
{
AddHostHeader(1, null, 80, "test.cnblogs.com");
静的 void AddHostHeader(int サイト ID, 文字列 IP, int ポート, 文字列ドメイン
)
{
DirectoryEntry サイト = new DirectoryEntry("IIS://localhost/W3SVC/"+siteid);
PropertyValueCollection serverBindings = site.Properties["ServerBindings"];
string headerStr = string.Format("{0}:{1}:{2}",ip,port,domain);
if (!serverBindings.Contains(headerStr))
{
serverBindings.Add(headerStr);
}
site.CommitChanges();
}
IIS でコードによるホスト ヘッダーの追加を見つける前に、次のコードで "ServerBindings" 属性を見つけることができず、いくつかの回り道をしました。
DirectoryEntry サイト = new DirectoryEntry("IIS://localhost/W3SVC/1/root");
コードは非常に単純です。説明する必要があるのは、サイト ID です。デフォルトのサイトは 1 です。デフォルト以外のサイトの場合は、サイトのログ ファイル名を確認することでわかります。
出典: dudu-happy プログラマー