2011-09-30 57 views
0

我已經爲運行lighttpd和fastcgi-mono-server2的ubuntu服務器部署了一項Web服務。 .asmx頁面正確加載,但當我測試的方法,我得到一個404.使用.asmx使用lighttpd和mono fastcgi

我的web服務被稱爲Import.asmx和我的方法被稱爲下載和404回來說import.asmx /下載不存在

使用xsp2相同的服務完美的作品

我認爲它是值得做的怎麼樣/下載得到由lighttpd的/ FastCGI的服務,但不能制定出如何解決它。

+0

你好?你可以請張貼方法嗎? –

+0

當使用隨asp.net2-examples包提供的示例應用程序時,我得到相同的行爲,所以它沒有什麼特別與我的方法 –

回答

0

解決了404錯誤......但現在我有一個500

其實我每MyService.asmx /後的someMethod電話得到這個錯誤。該方案沒有真正]我已經想通了:

location ~ \.(aspx|asmx|ashx|asmx\/(.*)|asax|ascx|soap|rem|axd|cs|config|dll)$ { 
     fastcgi_pass 127.0.0.1:9001; 
     index index.html index.htm default.aspx Default.aspx; 
     fastcgi_index Default.aspx; 
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
     include  /etc/nginx/fastcgi_params; 
    } 

我已經從只ASMXASMX /()改變*。確定沒有404但現在是500:System.Web.HttpException:方法'POST'在訪問文件'/Services/MyService.asmx/MyMethod'時不被允許。

這個發現給了我一些線索,說明nginx不能正確處理這種請求。谷歌搜索了近2小時後,我發現一個solution

location ~ \.asmx(.*) { 
      fastcgi_split_path_info ^(.+\.asmx)(.*)$; 
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
      fastcgi_param PATH_INFO $fastcgi_path_info; 
      fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; 
      include /etc/nginx/fastcgi_params; 
      fastcgi_index Default.aspx; 
      fastcgi_pass 127.0.0.1:9001; 
    } 

我是不是遠離它。只需在當前擁有並正常工作之前添加此位置規則即可。

+0

500錯誤尚未解決。 –

+0

這個答案完全令人困惑。你的第一個詞是「解決」,然後在你提到有一個未解決的錯誤的評論。你建議「解決方案」,然後是「不是真的」。你的答案是否真的回答了什麼? – Farray

+0

它解決了404錯誤。是與問題有關的主要錯誤。 –

0

我有同樣的問題。原來是沒有找到資產時爲404服務的默認指令。刪除以下行:

try_files $uri $uri/ =404; 

並添加PATH_INFO在/ etc/nginx的/ fastcgi_params FastCGI的PARAM:

fastcgi_param PATH_INFO  $fastcgi_path_info; 

問題解決了我。希望能幫助到你。