Debian

嘗試使用 Mono 和 Nginx 在 Debian 上託管 ASP.NET Web Api 時遇到問題

  • November 25, 2015

我有一個使用 .NET 4.0 的 Web API,我現在正嘗試在 Debian 上部署它。

我已經學習了一些關於如何做到這一點的教程,例如Running ASP.net Web API Services under Linux and OSx

$ /etc/nginx/sites-available/default:

server {
   listen        80;
   root          /var/www/API/;
   index         index.html index.htm default.aspx Default.aspx index.cshtml Index.cshtml;
   server_name   localhost;

   location / {
       fastcgi_index    Index.cshtml;
       fastcgi_pass     127.0.0.1:9000;
       include          /etc/nginx/fastcgi_params;
   }
}

我將以下內容添加到/etc/nginx/fastcgi_params

fastcgi_param    PATH_INFO          "";
fastcgi_param    SCRIPT_FILENAME    $document_root$fastcgi_script_name;

然後我開始nginxmono server

# /etc/init.d/nginx start
# fastcgi-mono-server4 /applications=/localhost:/var/www/API/ /socket=tcp:127.0.0.1:9000 /verbose=True

然後,當我嘗試訪問該站點時,日誌會給出我未能找到解決方案的警告和錯誤:

Warning: Duplicate name, SCRIPT_FILENAME, encountered. Overwriting existing value.
Error: No application defined for: localhost:80/Index.cshtml

生成警告是因為您的文件SCRIPT_FILENAME中有兩行/etc/nginx/fastcgi_params。您添加的原始值和新值。您應該註釋掉舊值以禁止顯示警告消息。

生成錯誤是因為您的fastcgi-mono-server4命令呼叫的語法錯誤。該/applications元素可能應該是這樣的:

/applications=localhost:/:/var/www/API/

有關詳細資訊,請參閱此文件

引用自:https://unix.stackexchange.com/questions/245352