大混乱

IIS6 でなく IIS7 のマネージャは Convert to Application とか Add Application… とメニューに出るようになっている。

(図1)

(IIS6 と考え方が異なるような気がして) IIS7 触り始めたころは、これ (Convert to や Add) になじめずに気持ち悪かったが、最近は IIS6 がどうだったか忘れてしまった。IIS7 になじんでしまった。

 

↓IIS6 のアプリ作成ボタンの図がこれ。

http://aspplus.nobody.jp/200612/16/1216.htm

 

今週は tryiis7mgr に仮想ディレクトリ設定・設定解除する機能を追加したのだが、これが元で大混乱発生。思っていたより仮想ディレクトリ・アプリケーション指定は複雑だった。

(図2) これは /vdir 仮想ディレクトリ (/ アプリに所属する /vdir 仮想ディレクトリ) をアプリに変換する前の applicationHost.config

(図3) これは変換後の applicationHost.config。(/ アプリに所属する /vdir 仮想ディレクトリ) が無くなって、(/vdir アプリに所属する / 仮想ディレクトリ) になっている。

(図4) コードで実現するなら、VirtualDirectory を Remove してから Application を Add する必要あり。VirtualDirectory の Remove を忘れると、Application の Add で落ちる。

 

(図2) や (図3) はまだきれいで簡単だ。VirtualDirectory の path がきれいに Application の path の中に納まっているから。

 

以下は複雑で嫌になる例。なぜこのように複雑になるのかは不明。

<site name="asaitama Web" id="5">
    <application path="/" applicationPool="pool_asaitama_c">
        <virtualDirectory path="/" physicalPath="E:\Account\asaitama\webapps\_wwwroot" />
        <virtualDirectory path="/xxx1" physicalPath="E:\Account\asaitama\webapps\banana" />
        <virtualDirectory path="/xxx2" physicalPath="E:\Account\asaitama\webapps\banana" />
        <virtualDirectory path="/xxx3" physicalPath="E:\Account\asaitama\webapps\apple" />
        <virtualDirectory path="/xxx3/xxx4" physicalPath="E:\Account\asaitama\webapps\apple" />
        <virtualDirectory path="/xxx3/xxx4/xxx5" physicalPath="E:\Account\asaitama\webapps\apple" />
        <virtualDirectory path="/vdir_to_apple" physicalPath="E:\Account\asaitama\webapps\apple" />
        <virtualDirectory path="/xxx4" physicalPath="E:\Account\asaitama\webapps\apple" />
        <virtualDirectory path="/xxx4/xxx5" physicalPath="E:\Account\asaitama\webapps\apple" />
        <virtualDirectory path="/xxx2/xxx6" physicalPath="E:\Account\asaitama\webapps\apple" />
        <virtualDirectory path="/xxx1/xxx7" physicalPath="E:\Account\asaitama\webapps\apple" />
        <virtualDirectory path="/vdir_to_apple/xxx8" physicalPath="E:\Account\asaitama\webapps\apple" />
        <virtualDirectory path="/kiwi/kiwi2/vdir2kiwi" physicalPath="E:\Account\asaitama\webapps\_wwwroot\kiwi" />
        <virtualDirectory path="/vdir2root" physicalPath="E:\Account\asaitama\webapps\_wwwroot" />
    </application>
    <application path="/lemon" applicationPool="pool_asaitama_c">
        <virtualDirectory path="/" physicalPath="E:\Account\asaitama\webapps\_wwwroot\lemon" />
        <virtualDirectory path="/red/aaa" physicalPath="E:\Account\asaitama\webapps\apple" />
        <virtualDirectory path="/red/bbb" physicalPath="E:\Account\asaitama\webapps\apple" />
        <virtualDirectory path="/red/zzz" physicalPath="E:\Account\asaitama\webapps\apple" />
        <virtualDirectory path="/red/yyy" physicalPath="E:\Account\asaitama\webapps\apple" />
        <virtualDirectory path="/red/xxx" physicalPath="E:\Account\asaitama\webapps\apple" />
        <virtualDirectory path="/red/vdir_to_apple" physicalPath="E:\Account\asaitama\webapps\apple" />
    </application>
    <application path="/orange" applicationPool="pool_asaitama_c">
        <virtualDirectory path="/" physicalPath="E:\Account\asaitama\webapps\_wwwroot\orange" />
    </application>
    <application path="/lemon/red/vdir_to_apple" applicationPool="pool_asaitama_c">
        <virtualDirectory path="/" physicalPath="E:\Account\asaitama\webapps\apple\" />
    </application>
    <application path="/lemon/red" applicationPool="pool_asaitama_i">
        <virtualDirectory path="/" physicalPath="E:\Account\asaitama\webapps\_wwwroot\lemon\red" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:80:www.saitama.useiis7.net" />
    </bindings>
    <logFile directory="E:\Account\asaitama\LogFiles" />
    <traceFailedRequestsLogging enabled="true" directory="E:\Account\asaitama\FailedReqLogFiles" />
</site>

/lemon/red/vdir_to_apple が二箇所に出現している!
red/aaared/bbb などは /lemon の中でなく /lemon/red の中に存在してほしい、、、がそうではない。

 

増改築を重ねて複雑になったコード(VirtualDirectory 追加・削除に対応させたコード)をきれいに書き直したい気がする。。。が止めておく。

Directory Browsing

 

以前の IIS でいうところの "ディレクトリの参照" を IIS 7 で実現しましょう。

 

Directory Browsing アイコンをダブルクリック

右側ペインで Enable をクリック

できました!

 

以下に示すのは生成された web.config です。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <directoryBrowse enabled="true" />
    </system.webServer>
</configuration>

.NET Users アイコン

.NET Users アイコンをダブルクリック

Medium で縛ってあるので、.mdf 自動生成できない?

手元で .mdf と .ldf を作って、サーバーにアップロードしました。

あらかじめ .mdf を設置してもダメ。

  サーバーで一番偉い人で操作してもダメ。でも、エラー メッセージがヒントな感じ。

手元で asp.net web サイト管理ツールを使い、事前に仕込みを行います。

仕込み済みの aspnetdb をサーバーにアップロード。

web.config 中の接続文字列を書き換え。database.mdf じゃなく、aspnetdb.mdf を使うように。

それでもダメですか。

サーバー側で一番偉い人で試すと、ユーザーの一覧が表示されました。

 

・・・うまくいかないですね。

IIS 7.0 マネージャでサーバーに接続する

http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1524

ここから IIS 7.0 マネージャをダウンロードして手元の PC にインストールしてください。

Vista だと SP1 が必要らしいので、Vista をお使いの方は注意してください。

IIS 7.0 マネージャを起動します。

Connect to a Site をクリック。

—————————————— メールで飛んでくる情報、ここから

IIS 7.0 リモート管理
   Server name:            tryiis7.net
   Site name:              martytaka Web Site
   User name:              martytaka_mgr
   Password:               ******

—————————————— メールで飛んでくる情報、ここまで

Server name と Site name を入れます。

User name と Password を入れます。

  つながりました。

今日はここまで。