さて、無事Apacheも立ち上がり、いよいよ本題である「ApacheでASP.NETアプリを動作させる」にトライしてみる。
まず、Apacheですが、特にインストール先の指定をしなかったため、デフォルトの"C:\Program Files\Apache Software Foundation\Apache2.2"にインストールされています。
ここからは"httpd.conf"というファイルに設定情報を記述して行くらしい。(httpd.confはApacheインストール先のconfフォルダに存在します)
テキストエディタで内容を確認してみるが、さっぱり理解できない・・・(汗)
とりあえずPCソフト備忘録 で書かれているようにhttpd.confの最終行へ呪文を追加しApacheサービスの再起動を行ってみたが、サービスの起動でfailしてしまう。どうやらそう簡単にはいかないらしい英語は全く出来ないがPCソフト備忘録 が参考にしていたページ をとりあえず読んで自分なりに解釈してみた。
まずは、LoadModule~~~という記述が列挙されている所に"LoadModule aspdotnet_module modules/mod_aspdotnet.so"という1行を追加してみた。
次に<IfModule mime_module>~</IfModule>セクションの間に"AddHandler asp.net asax ascx ashx asmx aspx axd config cs csproj licx rem resources resx soap vb vbproj vsdisco webinfo"の1行を追加。
そして、最終行に以下(赤字部分)を追加。
(ウェブアクセスのURLは"http://localhost/dotnet/"となるが、 実体は"c:\test"にあると仮定)
<IfModule mod_aspdotnet.cpp>
AspNetMount /dotnet "c:/test"
Alias /dotnet "c:/test"
<Directory "c:/test">
Options FollowSymlinks ExecCGI
Order allow,deny
Allow from all
DirectoryIndex index.html index.aspx
</Directory>
AliasMatch /aspnet_client/system_web/(\d+)_(\d+)_(\d+)_(\d+)/(.*) "C:/Windows/Microsoft.NET/Framework/v$1.$2.$3/ASP.NETClientFiles/$4"
<Directory "C:/Windows/Microsoft.NET/Framework/v*/ASP.NETClientFiles">
Options FollowSymlinks
Order allow,deny
Allow from all
</Directory>
</IfModule>
ここまで設定したので、試しにApacheサービスの再起動を行ってみたが問題無く起動した。"C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\index.html"を"c:\test"にコピーし、ブラウザから"http://localhost/dotnet/index.html "でアクセスしたら「It works!」と表示された。エイリアスのマッピングは正常にされているらしい。
では、いよいよASP.NETアプリが動くか検証してみたい。
以下ファイルをテキストエディタで作成し"c:\test"へ保存。
index.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="index.aspx.cs" Inherits="_Default" %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head" runat="server">
</head>
<body>
<%= test %>
</body>
</html>
index.aspx.cs
using System;
public partial class _Default : System.Web.UI.Page
{
protected string test = "abcd";
protected void Page_Load(object sender, EventArgs e)
{
}
}
ブラウザから"http://localhost/dotnet/index.aspx "へアクセスすると「abcd」と表示されれば成功。
さて、結果は?・・・・
見事に成功です!!PCソフト備忘録 さんに感謝
が、しかし・・・サンプルプログラムを作ってみて、すっかりC#を忘れてしまっている事に気付いてしまいました