web 2008 導入 (66) netfx4 入れたのでマシン レベルの web.config が二つあるわけですが・・・

 

ASP.NET 練習帳 : Medium 縛りする方法

に書いたコードは

C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\web.config

だけをエディットし、netfx4 の web.config をエディットしてくれない。

 

WebConfigurationMap のデフォルト コンストラクタでなく

↓のように machine.config と web.config のパスを渡すと、netfx4 の web.config もエディットできるようになった。

/// <param name="v20">netfx2 なら true。netfx4 なら false。</param>
private void ModifyWebSite_Medium_Shibari(MyDirectoryInfo info, bool v20)
{
    var mgr = new ServerManager();
    WebConfigurationMap webConfig = null;
    if (v20)
    {
        webConfig = new WebConfigurationMap(
            @"C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config",
            @"C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\web.config"
            );
    }
    else
    {
        webConfig = new WebConfigurationMap(
            @"C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config",
            @"C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config"
            );
    }
    Microsoft.Web.Administration.Configuration config = mgr.GetWebConfiguration(webConfig, null);

    _logger.WriteLine(LogType.Information, "Medium 縛り … ");
    ConfigurationSection section1 = config.GetSection("system.web/trust", info.SiteName_Web);
    section1.SetAttributeValue("level", "TryIIS7Medium");
    section1.SetMetadata("lockItem", true);
    mgr.CommitChanges();
    _logger.WriteLine(LogType.Information, "[成功]");
}

 

 
<system.web>
  <trust> 要素がマシン レベルでロックされているので、サイト管理者で接続したらドロップ ダウンがグレー アウトされています。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中