Ошибка сохранения длинного текста в ASP.Приложение на основе MVC EF - PullRequest
0 голосов
/ 12 декабря 2018

Я получаю ошибку в приложении на основе MVC, которое также использует EF, я получаю ошибку, когда пытаюсь сохранить длинный текст в таблице новостей для поля сведений.Когда я добавляю полный текст для новостей, происходит сбой, а когда я удаляю некоторый текст из новостей, он сохраняет его без каких-либо проблем

, также он отлично работает в локальном хосте, в то время как тот же код не срабатывает в рабочей среде

Проблемас общим сообщением об ошибке, так как сообщение об ошибке не перехвачено должным образом, это просто показывает мне одну общую ошибку «Произошла ошибка при создании новостей».

Так как я не парень MVC, я не уверен, как ямогу изменить приведенный ниже код, чтобы я мог получить подробную информацию об ошибке, связанной с проблемойСначала я подумал, что для решения этой проблемы я решил, что поле таблицы было в порядке, поскольку для него было установлено значение `Details nvarchar (MAX)

Ниже приведен файл с кодом partials. В нем содержится код для сохранения новостей

public bool CreateNews(NewsViewModel newsVM)
        {
            newsVM.News.LastUpdatedBy = ((User)HttpContext.Current.Session["user"]).UserID;
            newsVM.News.CreatedOn = GetUAEDateTime();
            newsVM.News.UpdatedOn = GetUAEDateTime();
            newsVM.News.NewsDate = DateTime.ParseExact(newsVM.News.FormattedNewsDate, "dd/MM/yyyy", CultureInfo.InvariantCulture);
            context.News.Add(newsVM.News);

            bool success = false;
            using (var dbContextTransaction = context.Database.BeginTransaction())
            {
                try
                {
                    context.SaveChanges();
                    if (newsVM.News.NewsID > 0)
                    {
                        newsVM.NewsImage.NewsID = newsVM.News.NewsID;
                        newsVM.NewsImage.NewsImageName = newsVM.NewsImage.GuidFileName.Replace("TN_", string.Empty);
                        newsVM.NewsImage.LastUpdatedBy = ((User)HttpContext.Current.Session["user"]).UserID;
                        newsVM.NewsImage.IsActive = newsVM.News.IsActive;
                        newsVM.NewsImage.IsVisible = newsVM.News.IsVisible;
                        newsVM.NewsImage.CreatedOn = GetUAEDateTime();
                        newsVM.NewsImage.UpdatedOn = GetUAEDateTime();
                        context.NewsImages.Add(newsVM.NewsImage);
                        int rowsAffected = context.SaveChanges();
                        if (rowsAffected > 0)
                        {
                            dbContextTransaction.Commit();
                            MoveNewsImageFromTemp(newsVM.NewsImage);
                            success = true;
                        }
                        else
                        {
                            dbContextTransaction.Rollback();
                        }
                    }
                }
                catch
                {
                    dbContextTransaction.Rollback();
                }
            }
            return success;
        }

И файл NewsController.cs, который ниже кода и

//NewController.cs
[HttpPost]
        public ActionResult Create(NewsViewModel newsVM)
        {
            if (domain.CreateNews(newsVM))
            {
                return RedirectToAction("Index");
            }
            else
            {
                ViewBag.Message = "An error occurred while creating the news.";
                newsVM.Languages = domain.GetLanguages();
                return View(newsVM);
            }

        }


[HttpPost]
        public ActionResult CreateNewsImage(NewsImageViewModel newsVM)
        {
            if (domain.CreateNewsImage(newsVM) > 0)
            {
                return RedirectToAction("NewsImages");
            }
            else
            {
                ViewBag.Message = "An error occurred while creating the news.";
                newsVM.ParentNews = domain.GetNewsItems();
                return View(newsVM);
            }

        }

Как я могу изменить этот код, чтобы получить подробное сообщение об ошибке, поскольку ошибка не связана с размером полей базы данных, так какуже установлено в nvarchar (MAX)

Также для файла web.config задано следующее

<security>
      <requestFiltering>
        <requestLimits maxAllowedContentLength="2147483647" />
      </requestFiltering>
    </security>

  <system.web>
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5" maxRequestLength="2147483647" />
    <customErrors mode="RemoteOnly"></customErrors>
  </system.web>

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

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

Как передать ошибку из Domain.cs в Newscontroller.cs в следующем коде

 [HttpPost]
        public ActionResult Create(NewsViewModel newsVM)
        {
            if (domain.CreateNews(newsVM))
            {
                return RedirectToAction("Index");
            }
            else
            {
                ViewBag.Message = "An error occurred while creating the news.";
                newsVM.Languages = domain.GetLanguages();
                return View(newsVM);
            }

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