読者です 読者をやめる 読者になる 読者になる

謎言語使いの徒然

適当に気になった技術や言語を流すブログ。

Mono 使って、ASP.NET を動かしてみる(Ubuntu)

.NET OSS Server Linux

以下面倒なので、sudo su - でRoot権限操作。
とりあえず mono をインストール。
apt-get install mono mono-gmcs mono-gac mono-utils monodevelop
次にコンパイラとかその辺をインストール
apt-get install monodoc mono-xsp monodoc-http
で、ドキュメントインストール
apt-get install monodoc-ipod-manual monodoc-njb-manual monodoc-nunit-manual monodoc-gtk-manual monodoc-gtk2.0-manual monodoc-gecko2.0-manual
パッケージマネージャのインストール
apt-get install monodevelop-java monodevelop-nunit monodevelop-versioncontrol

共通サンプルはコレ。100%互換できる自信はちょっと無いので、控えめなASP.NETフォーム。

<%@ Page Language="C#" %>
<html>
<head>
  <script runat="server">
  void Button1_OnClick(object Source, EventArgs e)
  {
    HtmlButton button = (HtmlButton) Source;
    if (button.InnerText == "Enabled 1"){
      Span1.InnerHtml="You deactivated Button1";
      button.InnerText = "Disabled 1";
    }
    else {
      Span1.InnerHtml="You activated Button1";
      button.InnerText = "Enabled 1";
    }
  }

  </script>
</head>
<body>
  <h1>Sample</h1>
  <form id="ServerForm" runat="server">
    <button id=Button1 runat="server" OnServerClick="Button1_OnClick">
    Button1
    </button>
    &nbsp;
    <span id=Span1 runat="server" />
  </form>
</body>
</html> 
XSP 経由で ASP.NET

インストールは
apt-get install mono-xsp mono-xsp2

実際に動かす場合
mono /usr/bin/xsp.exe --root (最上位ページのディレクトリ)

Apache 経由で ASP.NET

どうも XSP 必須らしい。
というのは、mod_mono は XSP パッケージを経由して ASP.NET を実行してるくさくて、これ単体だとエラった。
apt-get install mono-apache-server2 libapache2-mod-mono
この後、こんな感じ?

Alias /sample "(サンプルディレクトリフルパス)"
MonoApplications "/sample:(サンプルディレクトリフルパス)"
<Location /demo>
    SetHandler mono
</Location>

補足、そのままだと実行権限でエラーでるかも知れないので、パーミッション設定が欲しいかも?
具体的には mod_mono → XSP の間でトラブることがある。
そういう時は、一旦消して、ソースコードからコンパイルしてみるとEかも知れない。