Подтвердить что ты не робот

Страница ASP.NET MVC не загружается и говорит: "Ресурс не найден"

У меня возникла проблема, когда я пытаюсь открыть приложение ASP.NET MVC, но я получаю страницу с ошибкой ASP.NET, которая говорит следующее:

Ошибка сервера в приложении "/".

Ресурс не найден. Описание: HTTP 404. Ресурс, который вы ищете (или его зависимости), мог быть удален, изменилось его имя или временно недоступно. Просмотрите следующий URL-адрес и убедитесь, что оно написано правильно.

Запрошенный URL:/EventScheduler/account.aspx/login

Информация о версии: Microsoft.NET Framework Версия: 2.0.50727.3053; Версия ASP.NET: 2.0.50727.3053 **

Я использую трюк URL из этого сообщения в блоге, и именно поэтому у меня есть .aspx в URL-адресе:

http://blog.codeville.net/2008/07/04/options-for-deploying-aspnet-mvc-to-iis-6/

Он работает на моем другом сервере песочницы (а не на dev-машине), и теперь я просто развернул его на своем рабочем сайте в качестве нового виртуального каталога, но по какой-то причине кажется, что он действительно ищет файл .aspx.

Любые идеи? Думаю, я должен забыть шаг.

4b9b3361

Ответ 1

Я нашел решение этой проблемы: вам не нужно удалять global.asax, так как он содержит некоторую ценную информацию для бесперебойной работы вашего проекта, вместо этого посмотрите на имя вашего контроллера, в моем случае мой контроллер был назван что-то вроде MyController.cs и в global.asax он пытается сослаться на Home Controller.

Ищите эти строки в глобальном asax

routes.MapRoute(
   "Default", // Route name
   "{controller}/{action}/{id}", // URL with parameters
   new { controller = "Home", action = "Index", id = UrlParameter.Optional } 

в моем случае я должен был заставить это работать

    new { controller = "My", action = "Index", id = UrlParameter.Optional }

Ответ 2

У меня такая же ошибка при создании. По умолчанию используется настройка URLRoute для навигации. Если вы выберете свойство "Установить как стартовую страницу", щелкнув правой кнопкой любую страницу cshtml, это вызовет эту ошибку, потому что всегда есть маршрутизация на текущую страницу в файле Global.asax.

Посмотрите на свойства проекта для пускового пути и удалите его.

Ответ 3

Убедитесь, что вы не сообщаете IIS, чтобы проверить и посмотреть, существует ли файл перед его обслуживанием. Этот меня укусил пару раз. Выполните следующие действия:

Откройте диспетчер IIS. Щелкните правой кнопкой мыши на своем веб-сайте MVC и щелкните свойства. Откройте вкладку "Виртуальный каталог". Нажмите кнопку "Конфигурация...". В подменю приложений подстановочных карт убедитесь, что у вас есть сопоставление с c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll. УБЕДИТЕСЬ "Убедитесь, что файл существует" НЕ ПРОВЕРЕН!

Ответ 4

Если вы используете IIS 6 и выше, убедитесь, что приложение пул вашего приложения MVC. используется для Интегрированного управляемого режима трубопровода. Я по ошибке ошибся в Classic, и произошла ошибка.

Ответ 5

Страница не найдена, потому что соответствующий контроллер не выходит. Просто создайте конкретный контроллер. Если вы попытаетесь показать домашнюю страницу и использовать Visual Studio 2015, выполните следующие действия:

  • Щелкните правой кнопкой мыши папку Controller и выберите Add > Controller;
  • Выберите MVC 5 Controller - Empty,
  • Нажмите "Добавить";
  • Поместите HomeController для имени контроллера;
  • Создайте проект и снова запустите свой проект

Я надеюсь, что эта помощь

Ответ 6

Вы должны тщательно просмотреть свои значения маршрута.

routes.MapRoute(
   "Default", // Route name
   "{controller}/{action}/{id}", // URL with parameters
   new { controller = "Home", action = "Index", id = UrlParameter.Optional } 

В этом случае убедитесь, что у вас есть свой контроллер "Домой", так как приложение не будет загружаться, если нет HomeController с указателем. В моем случае у меня был HomesController, и я пропустил 's' infront дома. Я исправил несоответствие имени, и это устранило проблему как в моей локальной среде, так и на моем сервере.

Ответ 7

Имела ту же проблему, в моем случае причиной было то, что файл web.config отсутствовал в папке виртуального каталога.

Ответ 8

Я получил ту же ошибку при создании приложения MVC.
В моем случае это произошло потому, что я забыл добавить строку "Контроллер" в свое имя контроллера.

Ошибка с

public class ProductType : BaseController
{
    public ProductType()
    {
    }
}

Решенный

public class ProductTypeController : BaseController
{
    public ProductTypeController ()
    {
    }
}

Ответ 9

Необходимо обеспечить две вещи:

1) Route должен быть правильным в файле Global.ascx

2) Не забудьте добавить ссылку на Controller Project в ваш Web Project (представление находится в отдельном проекте от контроллера)

Второй - мой случай.

Ответ 10

Предположим, что исходный код копируется из других мест.

Когда-нибудь, если вы используете Virtual Directory в своем приложении, например:

http://localhost:50385/myapp/#/

Никакой маршрут не получит запрос.

решение:

Явно нажмите кнопку "создать виртуальный каталог" в файле проекта.

Ответ 11

В своем проекте откройте Global.asax.cs, затем щелкните правой кнопкой мыши метод RouteConfig.RegisterRoutes(RouteTable.Routes); затем нажмите "Перейти к определению". то при defaults: new { controller = "Home", action = "Index", id =UrlParameter.Optional} затем измените имена "Home" на свой собственный контроллер Name и Index на свое собственное имя вида, если вы изменили имена, кроме "HomeController" и "Index", Надеюсь, ваша проблема будет решена.

Ответ 12


Шаг 1: Проверьте, получили ли вы следующее обновление? http://support.microsoft.com/kb/894670 Если вы захотите следовать этой процедуре и посмотреть, работает ли она для вас. Это работало частично для меня. Элемент, в котором упоминается дополнительный "/", который нужно удалить, не совсем прав, но это дало мне некоторое представление о том, как немного изменить свойства проекта. Шаг 2: Щелкните правой кнопкой мыши по своим свойствам для своего веб-проекта в своем Solun. Выберите WEB > Выбрать текущую страницу вместо конкретной страницы.

Шаг 3: Зайдите в свой проект, где вы сохраните *.aspx, чтобы выбрать стартовую страницу. (Должен быть такой же, как на текущей странице или выбрать другой по вашему выбору:)) Hit Debug Run.

Ответ 13

Перейдите на любую страницу, которую вы хотите увидеть в браузере, справа click--> просмотреть в браузере. таким образом, работая со мной.

Ответ 14

После нескольких часов отладки это была просто ошибка С# в моем представлении html. Проверьте свое мнение и отследите любую ошибку

Не комментируйте код С#, используя стиль html, т.е.

Ответ 15

Не забудьте использовать PUBLIC для ActionResult:

public ActionResult Details(int id)
{
    return View();
}

вместо

 ActionResult Details(int id)
 {
     return View();
 }

Ответ 16

Откройте файл Controller.cs и рядом с public ActionResult Index(), вместо Index введите название своей страницы, которую вы хотите запустить в браузере. Для меня это был public ActionResult Login().

Ответ 17

Вы должны проверить, реализовали ли вы страницу в контроллере, например:

   public ActionResult Register()
        {
            return View();
        } 

Ответ 18

У меня была похожая проблема. Но я работал с Episerver локально с включенным ssl. Когда я не получил

Server Error in '/' Application.

Я получил ошибку небезопасного соединения. В конце концов, для меня этот пост на PluralSight вместе с настройкой URL-адресов веб-сайтов, соответственно со ссылкой ssl, установленной в конфигурации проекта, на экране администратора Управление веб-сайтом решил проблему ,

Ответ 19

У меня была такая же проблема, вызванная моим script ниже. Проблема была вызвана переменной url. Когда я добавил http://|web имя сервера |/| имя приложения | перед /Reports/ReportPage.aspx... он начал работать.

<script>
    $(document).ready(function () {
        DisplayReport();
    });

    function DisplayReport() {
        var url = '/Reports/ReportPage.aspx?ReportName=AssignmentReport';

        if (url === '')
            return;
        var myFrame = document.getElementById('frmReportViewer');
        if (myFrame !== null) {
            if (myFrame.contentWindow !== null && myFrame.contentWindow.location !== null) {
                myFrame.contentWindow.location = url;
            }
            else {
                myFrame.setAttribute('src', url);
            }
        }
    }
</script>