次の指示に従って並列 Mono (2.11.3) をインストールしました: http://www.integratedwebsystems.com/2012/04/install-mono-2-11/今、この Mono インスタンスで ASP.NET サイトを実行したい. VS 2010 で「インターネット サイト」テンプレートを使用して空の MVC 4 サイトを作成し、Mono を実行している Linux ボックスに公開しました。
これらの手順 ( http://www.integratedwebsystems.com/2011/06/get-mvc3-razor-running-on-mono/ ) に従って xsp4 経由で実行し、xsp4 を実行する前に環境変数を設定することに成功しました。大きな問題なく動作します (CSS バンドルなどのいくつかの新機能が動作しないようですが、後で対処します)。
今、apache や nginx のような本番サーバーを使用したいと考えています。しかし、それはほとんど不可能に思えます。この問題を抱えているのは私だけではないようです。たとえば、この単純なnginx構成を使用して
server
{
listen 80;
server_name mvctest.mono;
access_log /var/www/mvctest/log/access.log;
error_log /var/www/mvctest/log/error.log debug;
location /
{
root /var/www/mvctest/;
index index.html index.htm default.aspx Default.aspx;
fastcgi_index /Home;
fastcgi_pass 127.0.0.1:9000;
include /etc/nginx/fastcgi_params;
}
}
502 Bad Gateway エラーが発生し、ログ ファイルに「アップストリームが予期しない FastCGI レコードを送信しました: アップストリームからの応答ヘッダーの読み取り中に 3」と表示されます。Apache + mod_mono_server4 に関しては、エラーを回避していません。
Exception caught during reading the configuration file:
System.MissingMethodException: Method not found: 'System.Configuration.IConfigurationSectionHandler.Create'.
at System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection (System.String configKey) [0x00000] in <filename unknown>:0
at System.Configuration.ConfigurationManager.GetSection (System.String sectionName) [0x00000] in <filename unknown>:0
at System.Configuration.ConfigurationManager.get_AppSettings () [0x00000] in <filename unknown>:0
at Mono.WebServer.Apache.Server.get_AppSettings () [0x00001] in /opt/mono-2.11/build/xsp-2.10.2/src/Mono.WebServer.Apache/main.cs:208
at Mono.WebServer.Apache.Server+ApplicationSettings..ctor () [0x0002a] in /opt/mono-2.11/build/xsp-2.10.2/src/Mono.WebServer.Apache/main.cs:63
ここ Stackoverflow でも、このトピックに関する投稿はたくさんありますが、本当の答えはありません。ただし、一部のユーザーは、これらのサーバーを使用してモノラルで MVC4 サイトを実行することに成功したと報告しています。