さて、無事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#を忘れてしまっている事に気付いてしまいました叫び