【问题标题】:using .asmx using lighttpd and mono fastcgi使用 .asmx 使用 lighttpd 和单声道 fastcgi
【发布时间】:2011-11-28 15:03:35
【问题描述】:

我已将 Web 服务部署到运行 lighttpd 和 fastcgi-mono-server2 的 ubuntu 服务器。 .asmx 页面加载正确,但是当我测试该方法时,我得到了 404。

我的网络服务称为 Import.asmx,我的方法称为下载,404 回来说 import.asmx/download 不存在

使用xsp2同样的服务也能完美运行

我认为这与 /download 如何由 lighttpd/fastcgi 提供服务有关,但无法解决如何修复它。

【问题讨论】:

  • 喂?可以发一下方法吗?
  • 我在使用 asp.net2-examples 包提供的示例应用程序时得到相同的行为,所以它与我的方法无关

标签: asp.net mono asmx lighttpd xsp


【解决方案1】:

解决了 404 错误...但现在我有一个 500。

实际上,我在每次 MyService.asmx/SomeMethod 后调用时都会收到此错误。解决方案 [NOT REALLY] 我想通了:

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

我已将它从仅 asmx 更改为 asmx/()*。好的,没有 404,但现在是 500:System.Web.HttpException:访问文件“/Services/MyService.asmx/MyMethod”时不允许方法“POST”。

这个发现给了我一些线索,表明 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;
     }

我离它不远。只需在您拥有的当前位置规则之前添加此位置规则即可。

【讨论】:

  • 这个答案完全令人困惑。您的第一个词是“已解决”,然后在 cmets 中您提到有一个未解决的错误。您建议“解决方案”,然后是“不是真的”。你的回答真的回答了什么吗?
  • 解决了404错误。是与问题相关的主要错误。
  • 通过引入 500 错误来替换 404 错误并不是真正的解决方案。
  • 我在回答之前发现了这个问题。第一个问题的解决方案可能对其他人有用。不是一个完整的解决方案?没关系!如果有人有答案,我可以接受一个答案作为解决方案。
  • 我很感激。如果您不介意清理您的答案以便清楚您的贡献,我很乐意从您的答案中删除我的 -1。
【解决方案2】:

我遇到了同样的问题。原来是在找不到资产时服务 404 的默认指令。删除了以下行:

try_files $uri $uri/ =404;

并在 /etc/nginx/fastcgi_params 中添加 PATH_INFO 作为 fastcgi 参数:

fastcgi_param  PATH_INFO        $fastcgi_path_info;

这为我解决了问题。希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 2013-10-26
    • 2016-11-22
    • 1970-01-01
    • 2016-07-16
    • 1970-01-01
    • 2012-02-21
    • 1970-01-01
    • 1970-01-01
    • 2013-04-10
    相关资源
    最近更新 更多