запустить проект веб-сайта на Visual Studio не удалось в локальном по http 404 не найдена ошибка страницы - PullRequest
0 голосов
/ 21 ноября 2018

Я работал над проектом и оставил его около недели, когда я вернулся к нему и попытался запустить проект с помощью Ctr + F5, он перенаправил на URL, который не определен в конфигурации маршрута.как это http://localhost:53771/Views/Home/Index.cshtml и сталкивается с HTTP 404: ошибка не найдена.в то время как моя конфигурация маршрута похожа на эту, НО ЭТО РАБОТАЕТ ХОРОШО, ЕСЛИ Я ПОПИСЫВАЮ СЕБЕ ПРАВИЛЬНОГО URL-адреса перед r + F5, он перенаправляет на URL, который не определен в конфигурации маршрута.вот так http://localhost:53771

 public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

        routes.MapRoute(
               name: "Default2",
               url: "{controller}/{action}/{id}",
               defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
           );
    }

Я начал отлаживать проект, и кажется, что проект никогда не дошел до моего HomeController.У меня просто есть один контроллер с именем Home, и когда я удалил все коды моего контроллера Home, он по-прежнему действует так же.и другая вещь, которая кажется неправильной, это создает URL http://localhost:53771/Views/Home/Index.cshtml даже до того, как он перейдет к функции RegisterRoutes.проблема все локальная и вот мой global.asax при необходимости.Я ценю любую помощь

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;

namespace ML_Projectname
{
    public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            MvcHandler.DisableMvcResponseHeader = true;
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            MvcHandler.DisableMvcResponseHeader = true;


        }



        protected void Application_PreSendRequestHeaders(object sender, EventArgs e)
        {
            HttpContext.Current.Response.Headers.Remove("X-Powered-By");
            HttpContext.Current.Response.Headers.Remove("X-AspNet-Version");
            HttpContext.Current.Response.Headers.Remove("X-AspNetMvc-Version");
            HttpContext.Current.Response.Headers.Remove("Server");

        }
    }
}

1 Ответ

0 голосов
/ 21 ноября 2018

Я не верю, что есть какие-либо проблемы с вашей маршрутизацией или вашим приложением.Действие по умолчанию для запуска Visual Studio (просмотр правой кнопкой мыши проекта -> выбор свойств -> выбор веб-страницы) - «Текущая страница».Если вы просматриваете бритву (например, /Views/Home/Index.cshtml) во время запуска проекта в Visual Studio, Visual Studio попытается перейти непосредственно к этому ресурсу.Непосредственный запрос вида бритвы недопустим в контексте приложения MVC, и в итоге вы видите ошибку 404.

Чтобы избежать этого, вы можете установить начальный URL-адрес для определенного URL-адреса (например, http://localhost:53771) или, что еще проще, открыть и просмотреть один из файлов на стороне сервера (например, HomeController.cs) перед запускомпроект через Visual Studio.

версия tldr: это проблема с настройкой, имеющейся в Visual Studio, а не проблема с кодом приложения

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