2012-10-18 26 views
5

Tôi đã cài đặt song song Mono (2.11.3) theo các hướng dẫn sau: http://www.integratedwebsystems.com/2012/04/install-mono-2-11/ Bây giờ tôi muốn chạy trang ASP.NET của tôi trên ví dụ Mono này. Tôi đã tạo một trang MVC 4 trống bằng cách sử dụng mẫu "Internet site" trong VS 2010 và xuất bản nó lên hộp Linux chạy Mono.Mono 2.11 với nginx hoặc apache

Tôi đã chạy thành công thông qua xsp4 theo các hướng dẫn này (http://www.integratedwebsystems.com/2011/06/get-mvc3-razor-running-on-mono/) để thiết lập biến môi trường trước khi chạy xsp4. Nó hoạt động mà không có vấn đề lớn (tôi thấy rằng một số tính năng mới, như CSS bó, không làm việc, nhưng tôi sẽ đối phó với nó sau này).

Bây giờ, tôi muốn sử dụng máy chủ sản xuất như apache hoặc nginx. Tuy nhiên, có vẻ như gần như không thể, và có vẻ như tôi không phải là người duy nhất có vấn đề này. Ví dụ, sử dụng cấu hình nginx đơn giản này

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; 
    } 
} 

kết quả trong 502 lỗi Bad Gateway, và các tập tin log nói "ngược dòng gửi kỷ lục FastCGI bất ngờ: 3 trong khi đọc tiêu đề phản hồi từ phía thượng lưu". Đối với Apache + mod_mono_server4, tôi đã không di chuyển quá khứ lỗi

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 

Có rất nhiều bài viết về chủ đề này, ngay cả ở đây trên Stackoverflow, nhưng không có câu trả lời thực sự. Tuy nhiên, một số người dùng báo cáo rằng họ đã thành công trong việc chạy các trang MVC4 trên mono với các máy chủ này, vì vậy tôi đã tự hỏi liệu có ai muốn chia sẻ cài đặt cấu hình của họ hoặc hướng dẫn từng bước không?

Trả lời

0

Bạn cần biết máy chủ mono cổng nào đang nghe và đặt fastcgi_pass thành nó trong tệp cấu hình Nginx của bạn.

5

Gói cài đặt đang đặt một số tệp sai địa điểm. Đối với Apache, bạn sẽ phải di chuyển tệp mod-mono-server4.exe từ /usr/lib/mono/4.0 sang /usr/lib/mono/4.5 và cập nhật tham chiếu bên trong tệp/usr/bin/mod- mono-server4.

Nếu bạn đang sử dụng XSP hoặc FastCgi, điều trị tương tự sẽ được yêu cầu cho xsp4.exe và fastcgi-mono-server4.exe và tham chiếu tương ứng của chúng trong/usr/bin.

(Tôi bắt đầu hối tiếc Tôi đi theo con đường xuống Mono này ...)

0

Tôi không phải là một chuyên gia trong vấn đề này nhưng cấu hình nginx sau làm việc cho tôi trong một cấu hình hơi khác nhau (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; 
    } 
} 

Tất nhiên, fastcgi-mono-server sẽ phải được cấu hình để sử dụng các ổ cắm/var/run/myapp/fastcgisocket.

Lưu ý rằng bạn sẽ phải cẩn thận với các quyền r/w cho ổ cắm này.

Tôi vẫn gặp sự cố nginx không gửi nhiều yêu cầu được xử lý song song với máy chủ fastcgi-mono nhưng bên cạnh đó nó hoạt động tốt.

Tôi hy vọng điều đó sẽ hữu ích.

1

Dưới đây là một số script giải quyết các vấn đề về Mono 3.0.3/MVC 3/Nginx của tôi. Sau khi sao chép qua các tập tin cần thiết, trang web đã kéo lên tốt.

Các vấn đề liên quan