Возникли проблемы при развертывании приложения ASP MVC на обычном провайдере виртуального хостинга - PullRequest
3 голосов
/ 02 октября 2009

Я купил хостинг-пакет Windows Developer на fasthosts.co.uk, который, как я считаю, является стандартным пакетом хостинга на болоте. Он имеет ASP.NET 3.5 и, согласно их поддержке, также установлен SP1.

Я разработал свое веб-приложение, используя предварительный просмотр ASP MVC 2 1 (что, кстати, потрясающе, и я с нетерпением жду, чтобы застрять в предварительном просмотре 2), и оно отлично работает на моей машине разработчика, на которой у меня есть предварительный просмотр 2 устанавливается через установочный пакет.

Поскольку на сервере не установлен MVC, я последовал Метод развертывания Phil Haacks bin , который не работает, как показано ниже ...

При развертывании и копировании файлов на сервер я получаю совершенно бесполезную «Ошибка сервера 500 - Внутренняя ошибка сервера». Поэтому я изменил свою веб-конфигурацию так, чтобы customErrors mode = "Off", что не имело никакого значения, поэтому я подумал, что что-то происходит, что мешает ему даже добраться до бита customErrors.

Затем я приступил к удалению битов веб-конфигурации, пока они не дали мне приличное сообщение об ошибке. Я обнаружил, что он выдаст мне сообщение об ошибке только в том случае, если в конфиге будут удалены следующие биты -

  • Весь раздел configSections
  • Весь раздел httpHandlers
  • Весь раздел system.codedom
  • Разделы обработчиков и defaultDocument раздела system.webServer

Я использую стандартную веб-конфигурацию, которую MVC генерирует без изменений, кроме моей собственной строки подключения - которую я взял для этого тестирования.

Теперь, когда я получил сообщение об ошибке, я получил сообщение «Не удалось загрузить файл или сборку System.Web.Mvc ...», и я застрял! - есть предложения?

Edit:

Я купил новый хостинг-пакет с кем-то еще, и все работало нормально! Я был уверен, что это была ошибка Fasthosts, когда я развернул пустое приложение MVC, благодаря предложению Phils, а затем пустое приложение обычных веб-форм - и они оба выдавали одинаковые ошибки.

В настоящее время я пытаюсь убедить их, что это их вина, но они продолжают убеждать меня, что проблема в моей веб-конфигурации. Попытка отменить мой хостинг с ними, но я, видимо, заключил 12-месячный контракт, хотя я решил платить ежемесячно - о хорошо.

Полагаю, не стоит брать с собой Фастхостов, это единственное, что можно от этого отнять.

Ответы [ 6 ]

2 голосов
/ 23 февраля 2014

Я знаю, что это устарело, но я нашел этот вопрос и ответы при попытке настроить сайт MVC 5 на платформе общего хостинга Fasthosts. В итоге я получил способ добавить runAllManagedModulesForAllRequests="true" к моему web.config , например:

  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
      <remove name="FormsAuthenticationModule" />
    </modules>
  </system.webServer>

И все это прекрасно работает!

Обновление оказывается, что это немного похоже на трескание гайки кувалдой и может иметь последствия для производительности. Колин Фарр правильно указывает, что это можно решить более элегантно, изменив раздел модулей вашего web.config, добавив в него:

    <modules>
      <remove name="UrlRoutingModule-4.0" />
      <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
      <!-- any other modules you want to run in MVC e.g. FormsAuthentication, Roles etc. -->
    </modules>
2 голосов
/ 02 октября 2009

Похоже, что вы не развертываете в webroot. Это тот случай? Попробуйте развернуть пустой проект MVC.

1 голос
/ 07 июля 2010

Мой MVC-сайт работает следующим образом:

Я добавил расширение aspx к моей карте маршрутизации по умолчанию:

  routes.MapRoute(
            "Default", // Route name
            "{controller}.aspx/{action}/{id}", // URL with parameters
            new { controller = "Front", action = "Default", id = UrlParameter.Optional }
        );

  routes.MapRoute(
            "Root",
            "",
            new { controller = "Front", action = "Default", id = "" }
          );

Я не думаю, что Root на самом деле работает, потому что я получил ошибку 403, «Нет списка каталога», поэтому я добавил страницу default.aspx на сайт, которая просто перенаправляет в OnInit на «~ / Front» aspx / Default "(обратите внимание, что мой контроллер по умолчанию переименован в Front вместо Home).

Я изменил три библиотеки Mvc на Copy Local, чтобы они были развернуты в каталоге bin моего сайта.

Я использовал HtmlAction для всех своих ссылок на страницы, чтобы они автоматически получили расширение aspx.

Я заметил, что сайт при начальной загрузке работал медленнее, чем при использовании веб-форм, но кроме этого все вроде бы нормально.

1 голос
/ 17 октября 2009

Ошибка возникает из-за того, что быстрый хост не позволяет части system.webserver части конфигурации взаимодействовать с веб-сервером (очень раздражает). Я развернул веб-сайт MVC в учетной записи fasthost, и он частично работает ... вы можете просмотреть страницу индекса, но маршрутизация не работает. Чтобы избавиться от ошибок, просто закомментируйте раздел system.webserver. Мне не удалось заставить работать маршрутизацию с использованием расширений .aspx или .mvc :(

0 голосов
/ 02 октября 2009

Дважды проверьте ваш Global.asax и код-позади ... Я думаю, что такого рода ошибки происходят, когда приложение не может даже запуститься (следовательно, у вас нет другой ошибки, кроме 500).

Вы пытались вставить простую отдельную ASPX-страницу без кода или чего-то еще? Если так, вы получаете ту же ошибку? Если это так, я думаю, что ASP.NET 3.5 не настроен для вашего виртуального каталога должным образом, и вам придется обратиться в службу технической поддержки для переустановки / восстановления или установки версии на вкладке ASP.NET свойств виртуального каталога IIS. 1003 *

0 голосов
/ 02 октября 2009

Вам нужен dll ASP.Net MVC 2 на сервере. В вашем проекте выберите dll в свойствах, измените «Копировать локальный» на true.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...