ASP.NETでデータベースを使うのは、PHPや他言語と手続きが違うので戸惑うが、結局同じ事をやっている事が分かれば、なんていう事はない。むしろ、細かなコーディングが無くても良い、実に簡単だ。「"」だとか、「,」だとか、その数が合わないとか、見ても、一見訳の分からない文字列を書かなくて良い点は評価できる。
昨日作ったデータベースのデモプログラムを使って、確認しよう。まず、Web Developer 2010 Express 上では、ちゃんと動作する事が確認できた。これを一応、あきらめたApache環境下のMod_AspDotNet上にコピーする。動作を確認するが、やはり、データベースで引っ掛かりあえなくギブアップだな。もしかしたら、PHPの様に、接続コードを自分で用意すれば、出来るかも知れないが、プリコンパイルが出来なければ、大事なページは作れない。取りあえず、あきらめよう。
次に、ポート8080で設定したIISで動作を確認する。web.config のデバッグ行を消す。で、動作確認だが、あれ、エラーメッセージだ。長いメッセージの中に「..への書き込みアクセスが与えられていません。」とある。そこから察するに権限とかセキュリティーの問題ですか。と言う事で、ネットをググると、Apacheと違って、数が少ない。マイクロソフトのIISでは、このセキュリティーが実に分かりづらい。千差万別と言って良い位の組み合わせが有りそうだが、結局、Express版では、使えるのは、限定されるようだ。
IISマネジャーを起動させたまま、右側の操作から、アクセス許可の編集を開き、ネットに書いてある事を一つづつ試す。だが、状況は変わらない。つまり、セキュリティーではなさそうだ。こうした所が、IISを敬遠する一つなんだよね。
「It works!」と言う簡単なhtmlを用意してアクセスすると動作する。と言う事は、権限やセキュリティではないと考える。そこで、試行錯誤が始まる。アプリケーションプールをクリックすると、名前にサイトが並ぶ。該当するサイトを選択して、右側のアプリケーションの表示をクリックする。仮想パス、物理パス、サイト、次のアプリケーションプールは、これで良いのかなと、疑問が湧く。
大体、アプリケーションプールってなんだっけと訳が分からなくなる。再確認すれば、「サーバーでマネージ コードに対する要求がどのように処理されるかを決定します。」と有る訳だ。と来れば、その場で右クリックだ。アプリケーションプールの変更を選択し、リストからASP.NET v4.0 を選択する。つまり、こいつにコードを処理してもらうと言う意味になる。当然と言えば、当然だが、分からないよね。
Explorerを立ち上げ、確認する。やっと起動した。
IISの設定は、実に分かりづらい。Apacheは、なんだかんだ言っても、httpd.confファイルをいじれば、大方済んでしまう。それに倣えば、いっその事、大きな表に区分を付けて、一枚ですべてが済むようにしてくれないかな。こっちをつつくと、こう変わるなんて、実に分かりづらいね。