我对linux或mono一无所知。我有在 WebMatrix 中构建的网络应用程序。我已经使用 ServiceStack 和一个 cshtml 测试页面设置了简单的服务。一切在 Windows 上运行良好,但是当我将文件移动到 linux 框时,我的页面可以工作,但是对 ServiceStack 服务的 RESTful 调用会返回 404 未找到。我在这里缺少什么吗?linux 上的 mono 读取 web.config 和 global.asax 是否相同?
谢谢
我对linux或mono一无所知。我有在 WebMatrix 中构建的网络应用程序。我已经使用 ServiceStack 和一个 cshtml 测试页面设置了简单的服务。一切在 Windows 上运行良好,但是当我将文件移动到 linux 框时,我的页面可以工作,但是对 ServiceStack 服务的 RESTful 调用会返回 404 未找到。我在这里缺少什么吗?linux 上的 mono 读取 web.config 和 global.asax 是否相同?
谢谢
听起来像是大小写-出于性能原因,您应该修复它,但与此同时,您可以通过在开始单声道进程之前按如下方式设置 MONO_IOMAP 环境变量来让 Mono 忽略大小写,例如,我在我的服务脚本中使用以下内容:
export MONO_IOMAP=all
${MONOSERVER} /applications=${WEBAPPS} /socket=tcp:127.0.0.1:9000 &
它记录在这里:
是的,它们读起来是一样的。
但是...
Linux 使用区分大小写的文件系统。
因此,如果您键入:
http
://localhost.com/whatever.aspx
并且您的站点实际上称为whatever.aspx,那么它将起作用。
但是,如果您键入 What.aspx,则会得到 404。
此外,如果您网站的代码隐藏称为 Master.cs(class Master
带
此外,如果您使用 Apache 在 mod-mono 上运行 mono,我认为它默认在端口 8080 或 8082 上运行,因此您必须输入http://localhost.com:8080/whatever.aspx。
一个更好的主意可能是通过 fastcgi-mono-server4 在 nginx 上运行 servicestack。