web 2008 導入 (68) .NET Framework 4 に対応させました

tryiis7 で netfx4 を利用可能にしました。日本の共有鯖では tryiis7 が最初の対応のはず。たぶん。

Visual Studio 2010 で作った ASP.NET 4 アプリの持って行き先が無いなら tryiis7 に載せてください。相変わらず Medium + Socket + Web に制限しているけど。

 

 

VWD Express 2010 で MVC2 を作って tryiis7 にアップします。

webapps\mvc2 物理ディレクトリを /aspnet4 仮想ディレクトリにマッピング

/aspnet4 を「.NET 4 で統合」なアプリに指定。

おめでとうございます

web 2008 導入 (67) 改造中

 


ドロップダウンでプールの種類を選べます。

 

 
w3wp.exe が四つ動きます。要らないと思うので web ガーデン構成までは対応させる気はありません。

 

 
プールをリサイクルしたいならココで。

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

web 2008 導入 (65) applicationHost.config の中身を秀丸で置換

 

今まで v2 統合、v2 クラシックの二種類有ればよかったけど、

netfx 4 対応するには、

v2 統合、v2 クラシック、v4 統合、v4 クラシックの四種類が必要だ。

 

applicationHost.config の中身を書き換える。

 

● はアカウント名。

左側が旧い名称で、右側が新しい名称。

applicationPool="pool_●_i" →→→ applicationPool="pool_●_v20_i"

applicationPool="pool_●_c" →→→ applicationPool="pool_●_v20_c"

 

 

2010/4/20 追記

PS C:\Users\user2> Get-Content C:\_work\applicationHost.config | foreach {
>> $_ -replace ‘applicationPool="pool_([a-zA-Z0-9]+)_(i|c)"’, ‘applicationPool="pool_$1_v20_$2"’
>> } | Out-File C:\_work\applicationHost.config.3 -Encoding utf8
>>
PS C:\Users\user2>

そのままファイルに落とすと utf16 になるので Out-File で utf8 を指定しています。

web 2008 導入 (64) クラシックで v4.0 なアプリケーション プール

.NET Framework 4 が出たので試し中。

統合で v4.0 なプールは動くのに、クラシック (非統合) で v4.0 なプールが動かない現象に遭遇した。

以下は、クラシックで v4.0 なプールを動かすまでの手順です。

 


/test アプリケーションはクラシック (非統合) で v4.0 なプールを使用。


404.2 嫌がらせですか?


左側ツリーにてサーバーを選択した状態で、中央ペインに存在する ISAPI and CGI Resrictions アイコンをダブルクリック。


Not Allowed を Allowed に変更して差し上げる。

 
applicationHost.config が書き変わりました。


v4.0 で動きました!

以上

web 2008 導入 (63) BugNET 0.7.942 は部分信頼な環境では動かない

BugNET という名前のバグ管理システムを見つけたのでインストールしてみます。

BugNET  Home

BugNET-0.7.942-Install.zip を手元にダウンロードして解凍。

FTP でアップロード

webapps\BugNET を /BugNET にマッピング

/BugNET を統合プールのアプリに指定

App_Data\Database.mdf を /MsSqlDbFiles/BugNET.mdf としてアップロード。

/webapps/BugNET/App_Data/Database.mdf は不要なので削除。

データベースのアタッチ

BugNET.mdf ファイルを DB_BugNET というデータベース名でアタッチ。

手元の web.config を書き換え。DB 接続文字列を変更します。その後 FTP で web.config をアップロード。

/BugNET/Install/Install.aspx にアクセス。。。エラー発生。

うーん。どうも BugNET は部分信頼だと動かないようですね。

Install.aspx problem on godaddy – Installation problems – BugNET

Reporting Functionality – General development – BugNET

あきらめます。

web 2008 導入 (62) IIS 7.0 マネージャにバグ?発見

 

ScrewTurn Wiki 3.0.2.500 が出たのでバージョン アップさせた。

やり方は

http://tryiis7.spaces.live.com/blog/cns!A57DF6C28B81A8C1!1140.entry

に書いてあるのと同じ手順で OK。

3.0.0.333 と 3.0.1.400 で発生するバグが治ってるかどうかはまだチェックしてない。

 

それより、IIS 7.0 マネージャにバグ?を発見したのでメモっておく。


(サーバー単位接続でなく) サイト単位接続してる状態で Logging のアイコンをダブルクリック。

 
右側ペインの Disable/Enable を一度クリックすると中央ペインが灰色(編集不可)になってそれ以降二度と中央ペインは編集できない!

ちなみに、サーバー単位接続している場合は Disable/Enable は期待通りに作用します。

この Disable/Enable は
<configuraion>
    <system.webServer>
        <httpLogging dontLog="false" /> ここに作用します。

HTTP Logging httpLogging  Configuration Reference  The Official Microsoft IIS Site

 

過去にメモったかもしれませんが IIS 7.0 マネージャをサイト単位接続で使うと 「Shared Hosting で使う場合、それってどうなのよ」 的な情報漏れにつながる挙動があったりします。(私が IIS のスキーマを間違って編集したわけではありませんよ。デフォルトで変な挙動するのです)