2011-09-30 60 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; 

问题解决了我。希望能帮助到你。