Linux Apache で ASP.NET カスタムアプリを実行する

2011/01/26
★★★★

先回は、Linux の Apache で ASP.NET を実行する方法を紹介した。

今回は、Linux の Apahce で  ASP.NET カスタムアプリケーションを動作させる方法について紹介する。

ここでは、CentOS 5.5 x64 を例にとり、説明を進める。 また、環境は、「Linux の Apache で ASP.NET を実行する」の手順に沿ってセットアップ済とする。

AutoHosting の設定を行う。Mono 1.1.10 より以前のバージョンでは、ASP.NET アプリケーションをホストする毎に Apache の構成ファイルを手動で変更する必要があったが、Mono 1.1.10 以降のバージョンでは、この AutoHosting を使うことにより、ASP.NET アプリケーションを簡単にホストできる。

[root@centkun ~]# vi /etc/httpd/conf.d/mod_mono.conf

# 以下の 2 行を追加する。
MonoServerPath "/opt/novell/mono/bin/mod-mono-server2"
MonoAutoApplication enabled

MonoServerPath ディレクティブにより、明示的に 2.0 ランタイム "mod-mono-server2" の使用を宣言。
MonoAutoApplication で、AutoHosting を有効にする。

ここで、一度 Apache を再起動し、起動時にエラーが発生しないことを確認する。

[root@centkun ~]# /etc/rc.d/init.d/httpd restart

Apahce の起動時にエラーが発生する場合は、設定を再度見直す。

次にカスタムアプリケーションのサンプルを作成する。今回は、XML Web サービスを作成する。

[root@centkun ~]# mkdir /var/www/html/demo001
[root@centkun ~]# vi /var/www/html/demo001/NumberService.asmx

<%@ Webservice Language="C#" Class="MathService.MathService" %>
using System;
using System.Web.Services;

namespace MathService
{
    [WebService (Namespace = "http://tempuri.org/NumberService")]
    public class MathService : WebService
    {
        [WebMethod]
        public int AddNumbers (int number1, int number2)
        {
            return number1 + number2;
        }

        [WebMethod]
        public int SubtractNumbers (int number1, int number2)
        {
            return number1 - number2;
        }
    }
}

:wq

ここで、Apache を再起動する必要はない。AutoHosting により、Web アプリケーションは、自動的にホストされる。

ブラウザから、http://192.168.1.19/demo001/NumberService.asmx (IP アドレスは任意) にアクセスする。

Custom Web Application

[Methods] -> [AddNumber] -> [Test Form] を選択する。

Custom Web Application - Test Form

[number1]、[number2] に任意の数値を入力し、[Invoke] を選択し、ただしく動作することを確認する。

Custom Web Application - Test Form - Invoke

以上より、Linux Apache で ASP.NET カスタムアプリを実行することができた。

次回は、コードビハインドを用いた、より複雑な カスタム Web アプリケーションを作成し、動作させる方法について紹介する予定だ。

コメント (0)

コメントの投稿