Проблема с конфигурацией ASP.net MVC без mod_mono

Мы разрабатываем веб-сайт MVC .Net, который должен работать на Linux. Он отлично работал с mod_mono, но нам запрещено фактически использовать mod_mono на рабочем сервере из соображений производительности. Также мы используем mono-fastcgi-server2 и mod_fcgid.

Таким образом, при отключении mod_mono домашняя страница по-прежнему работает нормально, но любой запрос, такой как /controller/action, заканчивается ошибкой 404.

Интересно, сможем ли мы даже запустить наш веб-сайт MVC .Net без mod_mono?

Это мой первый вопрос на этом сайте, и я не очень хорошо знаком с apache и его модулями. Спасибо за любую помощь.


person Victor GH    schedule 11.06.2013    source источник


Ответы (1)


Возможно нет.

mod-mono — это модуль ASP.NET проекта Mono для Apache. Без него в Apache нет ничего, что могло бы интерпретировать любой контент ASP.NET. Таким образом, если вам не разрешено запускать mod-mono на вашем сервере Apache, вам не разрешено запускать ASP.NET на вашем сервере Apache.

person David    schedule 11.06.2013
comment
Спасибо, но домашняя страница работает, и на ней есть код ASP.Net, разве это не означает, что мы действительно можем запускать код ASP.net? - person Victor GH; 11.06.2013
comment
@ user2474965: Какой код действительно работает? Что такое код на стороне сервера и что рендерит на стороне клиента? - person David; 11.06.2013
comment
Пока что наш проект просто инициализирован из шаблона визуальной студии. На домашней странице отображаются две вкладки, «Главная» и «О программе», а также сообщение «Добро пожаловать в MVC.Net», которое устанавливается контроллером для представления. Я чувствую, что проблема заключается в работе с такими URL-адресами, как /controller/action, например, в проблеме перезаписи или перенаправления, но понятия не имею, с чего начать. Например, кнопка «О программе» не работает, поскольку это действие контроллера Home. - person Victor GH; 11.06.2013
comment
@ user2474965: Я подозреваю, что это случайно обслуживает некоторый статический HTML с сайта по умолчанию. Хотя трудно быть уверенным, ничего не видя. Если код на стороне сервера действительно говорит что-то вроде @Html.ActionLink(), а на стороне клиента он становится фактическим тегом a, то вы правы в том, что что-то интерпретирует содержимое ASP.NET. Мне было бы очень любопытно, что это за что-то. - person David; 11.06.2013
comment
Затем я должен убедиться, что это какой-то статический HTML, как вы предлагаете, или код .Net, который действительно запускается. Я предполагаю, что если я пишу некоторый код С# со строкой, и он работает и отображает результат, это означает, что код С# фактически интерпретируется. - person Victor GH; 11.06.2013