我目前正在尝试使用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进行此操作)。
我甚至不知道此时我不知道的事情,并希望在接下来的地方寻求帮助。在网上搜索已经产生了很多非常陈旧/过时的结果,似乎毫无用处。
答案 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
我不得不说单声道官方文档是非常基础的而且不是最新的。