Mono上的Web API不断获得404

时间:2015-02-04 20:45:28

标签: asp.net linux apache asp.net-web-api mono

我目前正在尝试使用mod_mono和apache在OpenSUSE上运行一个非常简单/基本的Web API程序。

当从visual studio运行时,代码在我的Windows机器上完美执行,但是一旦部署到我的OpenSUSE盒子,我只得到404错误,试图追踪路线。

我确定我正在部署到正确的目录,因为创建解决方案时自动生成的.css文件位于Web服务器上,当我放入路径时我可以看到它。

但是,当我在浏览器中导航到网站根目录时,我看不到Web API启动页面,当我在Linux服务器上键入路径/ api / Locations时,我也看不到相同的XML转储我是在windows / Visual Studio环境中这样做的。

我假设我需要做一些事情来让Apache尊重我的路线文件,但我只是不确定这可能是什么。我也在想我可能需要调整我的发布方式(我目前通过FTP直接通过Visual Studio进行此操作)。

我甚至不知道此时我不知道的事情,并希望在接下来的地方寻求帮助。在网上搜索已经产生了很多非常陈旧/过时的结果,似乎毫无用处。

1 个答案:

答案 0 :(得分:0)

是。你是对的。单声道官方文档不会使webapi工作。它可以让asp.net aspx web应用程序运行。

对于webapi 2.0,我编辑了httpd.conf以评论AddHandler行,这是单声道官方doc建议的。然后,我在AddHandler行旁边添加了以下部分:

MonoAutoApplication disabled
#AddHandler mono .aspx .ascx .asax .ashx .config .cs .asmx .axd
MonoApplications "/:/var/www/html"
MonoServerPath /usr.bin.mod-mono-server4

    <Location "/">
            Allow from all
            Order allow,deny
            SetHandler mono
    </Location>

通过这种方式,我的localhost / api / my工作正常。

谢谢你和https://www.oxfordcc.co.uk/blog/aspnet-web-api-on-linux-apache-with-mono

我不得不说单声道官方文档是非常基础的而且不是最新的。