Я получаю ошибку в приложении на основе 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);
}
}