2013-04-26 79 views
3

我对linux或单声道一无所知。我有WebMatrix中构建的Web应用程序。我使用ServiceStack和cshtml测试页面设置了简单的服务。所有在Windows上运行良好,但当我将文件移动到Linux框我的页面工作,但RESTful调用ServiceStack服务带回404没有找到。有什么我在这里失踪?在Linux上单声道读取web.config和global.asax是否一样?在Linux上使用单声道的ServiceStack

谢谢

+0

而不是你的文件移动到一台Linux机器,你应该不是你的文件移动到Linux机器:) – VoidKing 2013-04-26 19:57:55

+0

这很有趣,我完全同意你的看法。然而,我的朋友在他的服务器上给我一个位置。 – Kirby 2013-04-26 20:43:18

+0

更新:所以我做了什么,我拿出了global.asax的ServiceStack代码,并摆脱了该文件。我将代码放入_AppStart.cshtml中。它再次在Windows上正常工作,但在移到Linux机器时无法正常工作。想法? – Kirby 2013-04-26 20:44:30

回答

1

是的,它读取它们是一样的。
但是...
Linux使用区分大小写的文件系统。
所以,如果你输入:
http://localhost.com/whatever.aspx
和你的网站实际上被称为whatever.aspx,那么它将工作。

但是,如果键入Whatever.aspx,这将让你404

另外,如果您的网站的代码隐藏被称为Master.cs(与class Master),你引用它与主一个aspx文件.cs(如默认的Visual Studio Web应用程序模板),您将收到“未找到”错误。

此外,如果您运行MOD-单单与Apache,我认为它运行在端口8080或8082的默认,所以你必须键入http://localhost.com:8080/whatever.aspx

一个更好的主意可能是通过fastcgi-mono-server4在nginx上运行servicestack。

1

这听起来像外壳 - 你应该修复性能方面的原因,但在此期间,你可以得到单声道通过设置MONO_IOMAP环境变量忽略大小写例如开始你的单过程之前如下我用下面的在我的服务脚本:

export MONO_IOMAP=all 
${MONOSERVER} /applications=${WEBAPPS} /socket=tcp:127.0.0.1:9000 & 

它记录在这里:

http://www.mono-project.com/IOMap