powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Ошибки в сайте asp mvc 4
14 сообщений из 14, страница 1 из 1
Ошибки в сайте asp mvc 4
    #38748501
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Ребят помогите определить ошибку, есть сайт - times.mk.ua

Global.asax.cs
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;
using System.Web.WebPages;
 

namespace Times_Web
{
    // Note: For instructions on enabling IIS6 or IIS7 classic mode, 
    // visit http://go.microsoft.com/?LinkId=9394801

    public class MvcApplication : System.Web.HttpApplication
    {

             
        
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            //ЧТОБЫ АЙПАДЫ ОТКРЫВАЛИСЬ ДЕСКТОПНЫМ ПОЛНЫМ СТИЛЕМ
            //DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode()
            //{
            //    ContextCondition = (context => context.GetOverriddenUserAgent().IndexOf("iPad", StringComparison.OrdinalIgnoreCase) >= 0)
            //});

            //AuthConfig.RegisterAuth();
        }




        protected void Application_Error(object sender, EventArgs e)
        {
            HttpContext ctx = HttpContext.Current;
            Exception ex = ctx.Server.GetLastError();
            ctx.Response.Clear();

            RequestContext rc = ((MvcHandler)ctx.CurrentHandler).RequestContext;
            IController controller = new Times_Web.Controllers.HomeController(); // Тут можно использовать любой контроллер, например тот что используется в качестве базового типа
            var context = new ControllerContext(rc, (ControllerBase)controller);

            var viewResult = new ViewResult();

            var httpException = ex as HttpException;
            if (httpException != null)
            {

                BusinessLayer.Extensions.Mailer mailerManager = new BusinessLayer.Extensions.Mailer();
                mailerManager.SendEmail("***@gmail.com", "ОШИБКА сайт", httpException.Message + "<br><br><br><br><br><br>" + httpException.Data + "<br><br><br><br><br><br>" + httpException.InnerException);

                switch (httpException.GetHttpCode())
                {
                    

                    case 404:
                       
                      
                        viewResult.ViewName = "Ops";
                        break;

                    case 500:                     
                        viewResult.ViewName = "Error500";
                        break;

                    //это непредвиденная оишбка, эксепшн не вываливаем пользователю а шлем девелоперу на почту
                    default:                        

                        viewResult.ViewName = "Error";
                        break;
                }
            }
            else
            {
                viewResult.ViewName = "Error";
            }

            viewResult.ViewData.Model = new HandleErrorInfo(ex, context.RouteData.GetRequiredString("controller"), context.RouteData.GetRequiredString("action"));
            viewResult.ExecuteResult(context);
            ctx.Server.ClearError();
        }


        

    }
}




это заремил: ContextCondition = (context => context.GetOverriddenUserAgent().IndexOf("iPad", StringComparison.OrdinalIgnoreCase) >= 0)
сыпятся ошибки, поэтому я заремил
была ошибка:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
Сведения об исключении: 
Тип исключения: NullReferenceException 
Сообщение об исключении: Ссылка на объект не указывает на экземпляр объекта.
в Times_Web.MvcApplication.b__1(HttpContextBase context) в d:\Dropbox\Public\Times\Times-Solution\Times-Web\Global.asax.cs:строка 34
в System.Linq.Enumerable.WhereListIterator`1.MoveNext()
в System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
в System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
в System.Web.WebPages.DisplayModeProvider.GetAvailableDisplayModesForContext(HttpContextBase httpContext, IDisplayMode currentDisplayMode)




----
RouteConfig.cs

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
 public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");


 
           

            routes.MapRoute(
                "NewsDetailed",
                "News/{id}/{SeoUrl}",
                new { controller = "Home", action = "NewsDetailed", SeoUrl = UrlParameter.Optional },
                new { id = @"^\d+$" }
            );


            routes.MapRoute(
              "ArticleDetailed",
              "Article/{id}/{SeoUrl}",
              new { controller = "Home", action = "ArticleDetailed", SeoUrl = UrlParameter.Optional },
              new { id = @"^\d+$" }
          );


            routes.MapRoute(
              "ConferenceDetailed",
              "Conference/{id}/{SeoUrl}",
              new { controller = "Home", action = "ConferenceDetailed", SeoUrl = UrlParameter.Optional },
              new { id = @"^\d+$" }
          );


            routes.MapRoute(
              "BlogsDetailed",
              "Blog/{id}/{SeoUrl}",
              new { controller = "Home", action = "BlogsDetailed", SeoUrl = UrlParameter.Optional },
              new { id = @"^\d+$" }
          );




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

                          

        }



контроллер:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 //одна полная новость
        public ActionResult NewsDetailed(int id, string SeoUrl)
        {   
            BusinessLayer.Record.Record news = recordsManager.GetRecordById(id, true);

            if (news.SEoTitleM == null) { news.SEoTitleM =  news.Title; }
            if (news.DescriptM == null) { news.DescriptM = ""; }
            if (news.KeywordsM == null) { news.KeywordsM = "новости...."; }       
            return View(news);
        }



регулярно сыпятся ошибки такого рода:
Код: c#
1.
Контроллер для пути "/2330/v-seti-poyavilos-video-obstrela-lyudey-v-simferopole" не найден или не реализует интерфейс IController.


и так на все или на очень много записей по очереди или в произвольном порядке.

Подскажите в какую сторону копать?
...
Рейтинг: 0 / 0
Ошибки в сайте asp mvc 4
    #38748511
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если я правильно понял, копать RouteConfig.cs, так как там не прописано обслуживание подобных путей
...
Рейтинг: 0 / 0
Ошибки в сайте asp mvc 4
    #38748517
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProЕсли я правильно понял, копать RouteConfig.cs, так как там не прописано обслуживание подобных путей

так как там не прописано обслуживание подобных путей
---
да, но их и не должно быть.

я взял к примеру такой ошибочный адрес и перешел в браузере: http://times.mk.ua/2013/s-1-aprelya-v-ukraine-mogut-uvelichitsya-nalogi-na-avtomobili

и получил именно такую же ошибку, то есть я воспроизвел вручную ошибку, а правильный путь такой:

http://times.mk.ua/News/9045/gricenko-zayavil-o-davlenii-poroshenko-na-parlament-yanukovich-otdyhaet

значит, где то в вьюхе должен быть некорректный вызов на метод, но я поиском нашел все: "NewsDetailed"
ссылки типа:
@Html.ActionLink("Подр", "NewsDetailed", "Home", new { id=item.id }, null)

везде все корректно, у некоторых правда нет имени контролера Home, но эти вьюхи лежат в папке хом контролера, параметр не обязателен, но я его на всякий случай щас попрописую
...
Рейтинг: 0 / 0
Ошибки в сайте asp mvc 4
    #38748520
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и еще странно ошибки сыпятся периодами, например два часа подряд идут, с перерывами в минуту, две, затем тишина, через несколько часов опять....
...
Рейтинг: 0 / 0
Ошибки в сайте asp mvc 4
    #38748528
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sputnickзначит, где то в вьюхе должен быть некорректный вызов на методнет, не значит

Это значит, что поисковые боты делают запросы по этим адресам. Может раньше они были такие и остались в индексах, может они по собственному усмотрению туда лезутSputnickошибки сыпятся периодами, например два часа подряд идутчто, собственно, подтверждает вышесказанное

Смотрите логи сервера - какой именно UserAgent вас долбит по этим адресам (если он, конечно, обозначит себя)
...
Рейтинг: 0 / 0
Ошибки в сайте asp mvc 4
    #38748531
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProSputnickзначит, где то в вьюхе должен быть некорректный вызов на методнет, не значит

Это значит, что поисковые боты делают запросы по этим адресам. Может раньше они были такие и остались в индексах, может они по собственному усмотрению туда лезутSputnickошибки сыпятся периодами, например два часа подряд идутчто, собственно, подтверждает вышесказанное

Смотрите логи сервера - какой именно UserAgent вас долбит по этим адресам (если он, конечно, обозначит себя)

отлично, если так, то я смогу ему обрубить путь и с меня пиво =)
...
Рейтинг: 0 / 0
Ошибки в сайте asp mvc 4
    #38748551
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в robots.txt

сделал:

User-agent: *
Disallow: /




это "отшвырнет" агентов?
...
Рейтинг: 0 / 0
Ошибки в сайте asp mvc 4
    #38748557
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы хотите запретить индексирование поисковиками новостного сайта? Крайне оригинально.

а это для самообразования http://ru.wikipedia.org/wiki/User_Agent
...
Рейтинг: 0 / 0
Ошибки в сайте asp mvc 4
    #38748568
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProВы хотите запретить индексирование поисковиками новостного сайта? Крайне оригинально.

а это для самообразования http://ru.wikipedia.org/wiki/User_Agent

за часов 20 все же не выпадет с индекса? Зато точно буду знать агент или нет.
...
Рейтинг: 0 / 0
Ошибки в сайте asp mvc 4
    #38748570
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А по-правильному:
если заведомо известно, что все эти адреса подразумевают только News (а не Article, Conference, Blog), то нужно просто делать переадресацию Moved Permanently на правильный адрес
...
Рейтинг: 0 / 0
Ошибки в сайте asp mvc 4
    #38748573
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SputnickShocker.Proа это для самообразования http://ru.wikipedia.org/wiki/User_Agent

за часов 20 все же не выпадет с индекса? Зато точно буду знать агент или нет.вы невнимательно читали ссылку. Если вы запретите User-agent: *, то к вам на сайт почти никто не сможет зайти
...
Рейтинг: 0 / 0
Ошибки в сайте asp mvc 4
    #38748768
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, таки яндекс бот:

Код: c#
1.
2014-09-16 21:18:19 GET /2152/strelba-v-harkove-rossiyskiy-diplomat-prizval-k-masshtabnym-deystviyam - - 178.154.243.76 HTTP/1.1 Mozilla/5.0+(compatible;+YandexBot/3.0;++http://yandex.com/bots) - times.mk.ua 404 3980 351 78



я так увлекся поиском несуществующей ошибки, что забыл о главном - крайне регулярно пользователи сайта выхватывали 503 ошибку (сервис не доступен). И вместе с тем один из редакторов сайта жаловался на то что при сохранении новости, ему показывается крайне часто 404 ошибка... я подключил отправку 404 ошибки на имейл, как видно из глобаласакс выше, до этого на мыло шли ошибки все кроме 404... увидел туеву кучу 404 ошибок от янбота и начал рыть не в ту степь....

как оказалось как раз вчера утром наш фид подключили на очень сильный агрегатор новостей, он дал нам + 4000 визитов/сутки, что стало причиной 503 ошибки.

Сейчас в сутки 8 000 посетителей.... хостер добавил пулов, но я так подозреваю нужно переходить на выделенный сервак.


Дабы тема была полной, скажите это норм роботс?:

User-agent:*
User-agent: Yandex
Host: times.mk.ua
...
Рейтинг: 0 / 0
Ошибки в сайте asp mvc 4
    #38748769
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще я так подозреваю ресурс вирт хостинга значительно уходит на отправку 404 ошибки на мыло.... если в течении часа агент долбит... или я не прав?
...
Рейтинг: 0 / 0
Ошибки в сайте asp mvc 4
    #38748802
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем отправлять 404 ошибку на мыло?
404 ошибки будут всегда - это нормально.

И я уже говорил выше, для подобных адресов (для которых известен адрес истинной страницы) делайте Moved Permanently - это улучшит индексацию и избавит от данных ошибок.

По robots.txt я не большой спец, не скажу вам больше, чем написано в учебниках.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Ошибки в сайте asp mvc 4
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]