2010年1月22日金曜日

こんな NerdDinner は嫌だ

このエントリーをはてなブックマークに追加
が公開されているわけだけど、少し補足。

記事の方には書かなかったけど、Linux の大文字・小文字を区別するファイルシステムの仕組みにひっかかる部分が NerdDinner にもいくつかあって、

「プロジェクトルート/Web.config」から抜粋:
<authentication mode="Forms">
  <forms loginUrl="~/Account/Logon" />
</authentication>

何の手当てもせずに実行すると、



ここで MONO_IOMAP の出番なんだけど、どうもうまくいかない。というのは MonoDevelop 上で



という設定をしたけど、まったく効果がなく、「MONO_IOMAP 効かねぇwww」と、いくつか該当する箇所を、直接シコシコ修正したりした(上記「Web.config」の場合は、Logon -> LogOn、ちなみに記事に添付したサンプル資源は修正済みのもの)。

で、後日、コンソールから

$ export MONO_IOMAP=all
$ xsp2 --root /path/to/NerdDinner --port 8080

という感じで、直接 xsp2 コマンドを使用して実行してみたら(「Web.config」の該当の記述を元に戻して)、



まったく問題なかったので、「やらなくていい修正をまたやったwww」ということが分かった。

また、同様にコンソールから

$ export MONO_IOMAP=all
$ monodevelop

MonoDevelop を実行し、NerdDinner を実行してみたら、当然問題はなかった。

MonoDevelop 2.0 上での環境変数の設定は、どうもいまいちらしい。

ということで、Mono 用の環境変数として、MONO_IOMAP を(「~/bin/mono_env」とかに)設定しておけばいいよねという話。

Configure Apache Mod_Mono で設定ファイルを生成した場合、MonoSetEnv ディレクティブによる MONO_IOMAP の設定を行っているけど、「/etc/apache2/envvars」で MONO_IOMAP の設定をしているので、これらはコメントにしている(問題はなかった)。

あと、この設定ファイル(例:NerdDinner 用設定ファイル「/etc/apache2/sites-available/include/nerddinner」)には、「mod_deflate」用の設定もあるけど、Ubuntu 9.04 では、「apache2」パッケージ導入時の依存パッケージ「apache2.2-common」に含まれていて、標準で有効なモジュールとなっている。「mod_deflate」の詳細については、こちらを。


ASP.NET MVC 2 のリリースも近く、


周回遅れ感、機を逸している感もあるけど、何かの参考になればいいかなと思う次第。

ちなみに、エントリータイトルはホッテントリーメーカーを利用したもの。面白いので使わせていただいた。他意はない。

0 件のコメント:

コメントを投稿