6

次の指示に従って並列 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 サイトを実行することに成功したと報告しています。

4

4 に答える 4

5

インストール パッケージが一部のファイルを間違った場所に配置しています。Apache の場合、ファイル mod-mono-server4.exe を /usr/lib/mono/4.0 から /usr/lib/mono/4.5 に移動し、ファイル /usr/bin/mod- 内の参照を更新する必要があります。モノサーバー4.

XSP または FastCgi を使用している場合、xsp4.exe と fastcgi-mono-server4.exe および /usr/bin 内のそれぞれの参照に対して同じ処理が必要になります。

(このMonoパスをたどったことを後悔し始めています...)

于 2012-11-11T02:07:05.463 に答える
1

Mono 3.0.3/MVC 3/Nginx の問題を解決したスクリプトを次に示します。必要なファイルをコピーした後、サイトは正常に表示されました。

于 2013-03-28T21:43:17.287 に答える
0

私はこの問題の専門家ではありませんが、次の nginx 構成は、わずかに異なる構成 (nginx + mono 2.10 + F# + websharper) で機能します。

server {
    listen   80;
    access_log   /var/log/myapp/access.log;

    location / {
            root /opt/myapp;
            index index.html index.htm default.aspx Default.aspx;
            fastcgi_pass unix:/var/run/myapp/fastcgisocket;
            include /etc/nginx/fastcgi_params;
    }
}

もちろん、ソケット /var/run/myapp/fastcgisocket を使用するように fastcgi-mono-server を構成する必要があります。

このソケットの r/w パーミッションには注意する必要があることに注意してください。

nginxがfastcgi-mono-serverに並行して処理する複数のリクエストを送信しないという問題がまだありますが、これ以外にもうまく機能します。

お役に立てば幸いです。

于 2012-12-29T15:53:56.953 に答える
0

mono サーバーがリッスンするポートを把握し、Nginx 構成ファイルで fastcgi_pass を設定する必要があります。

于 2012-10-26T00:27:01.597 に答える