2013-04-26 3 views
3

Я ничего не знаю о Linux или моно. У меня есть веб-приложение, которое я создаю в WebMatrix. Я установил простой сервис с ServiceStack и тестовой страницей cshtml. Все работает отлично в Windows, но когда я перемещаю файлы в linux box, мои страницы работают, но RESTful вызывает службу ServiceStack, возвращая 404 не найден. Здесь что-то не хватает? Моно на linux читает web.config и global.asax то же самое?ServiceStack with mono on linux

Благодаря

+0

Вместо того чтобы перемещать файлы в окне Linux, вы не должны перемещать файлы в окне Linux :) – VoidKing

+0

Это смешно, и я согласен с вами. У моего друга, однако, было место для меня на его сервере. – Kirby

+0

Обновление: Так что я сделал, я взял код ServiceStack из global.asax и избавился от этого файла. Я поместил код в _AppStart.cshtml. Опять же, он отлично работает в Windows, но не при переходе в Linux. Идеи? – Kirby

ответ

1

Да, он читает им то же самое.
Но ...
В Linux используются файловые системы с учетом регистра.
Итак, если вы наберете:
http://localhost.com/whatever.aspx
и ваш сайт на самом деле называется what.aspx, то он будет работать.

Однако, если вы наберете Whatever.aspx, что поможет вам 404.

Кроме того, если отделенный код вашего сайта называется Master.cs (с class Master), и вы ссылаетесь его на ASPX файл с мастером .cs (например, шаблон веб-приложения Visual Studio по умолчанию), вы получите ошибку «не найден».

Кроме того, если вы используете моно на mod-mono с Apache, я думаю, что он работает на порту 8080 или 8082 по умолчанию, поэтому вам нужно ввести http://localhost.com:8080/whatever.aspx.

Лучшей идеей может быть запуск servicestack на nginx через fastcgi-mono-server4.

1

Это звучит как обсадка - вы должны исправить это по соображениям производительности, но тем временем вы можете получить Mono для игнорирования, установив переменную окружения MONO_IOMAP следующим образом, прежде чем запускать моно-процесс, например. Я использую следующие в моем сценарии обслуживания:

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

Это задокументировано:

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