2015-07-15 4 views
4

Я установил сайт на нашем веб-сервере с помощью IIS8. URL-адрес - это ссылка ABC.mycompany.com. Когда я иду в ABC.mycompany.com, я получаю не найдена ошибка:Настройка маршрута по умолчанию для сайта MVC в IIS 8

Server Error in '/' Application.

The resource cannot be found.

Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.

Requested URL: /

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.17929

Если я иду в ABC.mycompany.com/Home/InstrumentList, он показывает правильную страницу, я хочу, чтобы начать. Как я могу начать с этого маршрута?

В Visual Studio 2013 у меня есть Home/InstrumentList, как мое действие для начала, и это прекрасно работает. Я рассмотрел несколько примеров, где они ссылаются на страницы по умолчанию и индексы, но мое приложение не имеет ни одного из них. Кроме того, есть ссылки на страницы .aspx, но в моем приложении нет .aspx-страниц, просто .cshtml Views и .cs Controllers. Я также видел вещи о добавлении маршрутов, но я не уверен, куда их помещать в global.asax.cs (в ApplicationStart? Вне этого? В другом методе? Только один?). Я также не знаю, что менять для работы на моем (изменить индекс на InstrumentListing или оставить его в покое). До сих пор до меня ничего не работало.

Вот одна из моих попыток с помощью Global.asax.cs, где я пытался добавить метод регистра маршрута:

namespace GPC 
{ 
    public class MvcApplication : System.Web.HttpApplication 
    { 
     protected void Application_Start() 
     { 
      AreaRegistration.RegisterAllAreas(); 
      FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 
      RouteConfig.RegisterRoutes(RouteTable.Routes); 
      WebApiConfig.Register(GlobalConfiguration.Configuration); 
     } 

     public static void RegisterRoutes(RouteCollection routes) 
     { 
      routes.MapRoute(
      "Default", 
      "{controller}/{action}/{Filtre}", 
      new { controller = "Home", action = "Index", Filtre = UrlParameter.Optional }); 
     } 
    } 
} 

Вот некоторые из сайтов, которые я использовал, но ничего не работает для меня:

http://weblog.west-wind.com/posts/2013/Aug/15/IIS-Default-Documents-vs-ASPNET-MVC-Routes

cannot set Default route for MVC project

http://weblogs.asp.net/imranbaloch/editing-routes-in-mvc

Буду признателен, если кто-нибудь покажет мне, как получить ABC.mycompany.com/Home/InstrumentList, чтобы показать, когда пользователь перейдет на сайт ABC.mycompany.com.

ответ

4

Я не уверен, но ваш метод RegisterRoutes должен быть в классе RouteConfig, который по умолчанию должен быть в App_Start foulder проекта MVC. Это не метод в классе MvcApplication, который находится в Global.asax.cs, как я вижу в вашем вопросе.

Тогда вы должны изменить только RegisterRoutes метод, как это установлено другое действие контроллера по умолчанию:

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.MapRoute(
    "Default", 
    "{controller}/{action}/{Filtre}", 
    new { controller = "Home", action = "InstrumentList", Filtre = UrlParameter.Optional }); 
} 
+1

Спасибо. Это прекрасно работает. Сайты, на которые я смотрел, либо имели это в global.asax.cs, либо не упоминали, куда он пошел. Пара вопросов, если вы не возражаете: 1. Могу ли я предположить, что сервер пытается получить страницу «Default» (default.aspx или что-то в этом роде) и что этот код перенаправляет Default.aspx в Home/InstrumentList? 2. Как я уже сказал, я нашел несколько противоречивых ответов при поиске этого. Можете ли вы порекомендовать источник, который объясняет такие вещи? Похоже, что маршрут по умолчанию был бы очень элементарным, чтобы знать, но я не мог понять, как его установить. – boilers222

+0

ну, я тоже не знаю эту проблему в deap. Но я знаю, что MVC Routing работает над настройками начальной страницы IIS по умолчанию. Все, что я знаю, что настройка iis пишет что-то в Web.Config, а страница по умолчанию является частью структуры ASP.NET WebForms. И он игнорируется MVC. –

Смежные вопросы