Ubuntu

使用 fastcgi-mono-server4 的 WebResource.axd 出現 404 錯誤

  • November 23, 2014

我有一個簡單的 ASP.NET WebForms 應用程序,我在 Windows 中創建並複製到執行 fastcgi-mono-server4 和 nginx 的 Linux 伺服器(Ubuntu 14.04)。該應用程序在 Windows 上執行良好,但在單聲道上執行時,WebResource.axd?d=...由於 404 錯誤而無法獲取腳本。因此,所有回發都失敗,因為 WebForm_OnSubmit()未定義。

如果我從頁面中刪除我ScriptManager和所有驗證器,它在單聲道上執行良好,因為WebResource.axd不再需要。但是,我不想這樣做,因為我想使用 AJAX。

我嘗試了這篇文章中的解決方案,但沒有效果。我也嘗試將該標籤添加到該system.webServer/handlers部分,但這也不起作用。

我還嘗試按照這篇文章在沒有 ScriptManager 的情況下使用 AJAX。它在 Windows 上執行良好,但在單聲道中失敗,因為我的所有 Web 服務請求都出現 404 錯誤。

所以我的問題是:為什麼我在嘗試下載時會收到 404 錯誤WebResource.axd,我該如何解決?我需要修復一些單聲道或 nginx 配置嗎?

編輯:這是我的 nginx 配置:

server {
   listen       80;
   server_name  www.example.com;
   access_log   /var/log/nginx/example.access.log  main;
   location / {
       root         /var/www/www.example.com;
       index        Default.aspx;
       try_files $uri $uri/ /Default.aspx;
       fastcgi_index Default.aspx;
       fastcgi_pass 127.0.0.1:9000;
       include /etc/nginx/fastcgi_params;
       fastcgi_param PATH_INFO "";
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   }
}

我用這篇文章找到了答案。基本上,我需要在我的 nginx 配置中為 .axd 文件添加一個特殊位置。我的最終配置如下;它還允許頁面方法工作。

server {
   listen       80;
   server_name  www.example.com;
   access_log   /var/log/nginx/www.example.access.log;
   location ~\.(aspx|axd)(.*) {
       include fastcgi_params;
       fastcgi_split_path_info ^(.+.aspx)(.*)$;
       fastcgi_param PATH_INFO $fastcgi_path_info;
       fastcgi_param SCRIPT_FILENAME    $document_root$fastcgi_script_name;
       fastcgi_index Default.aspx;
       fastcgi_pass 127.0.0.1:9000;
   }
   location / {
       root         /var/www/www.example.com;
       index        Default.aspx;
       try_files $uri $uri/ $uri.aspx /Default.aspx;
       fastcgi_index Default.aspx;
       fastcgi_pass 127.0.0.1:9000;
       include /etc/nginx/fastcgi_params;
       fastcgi_param PATH_INFO "";
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   }
}

引用自:https://serverfault.com/questions/646353