首页 > 解决方案 > IIS 上的 ASP.NET MVC 5 应用程序抛出 500 - 内部服务器错误

问题描述

我在来自特定控制器的所有页面上都收到 550 内部服务器错误。来自其他控制器的所有其他视图都提供特定视图。

控制器是一个具有 CRUD 功能的简单控制器。

[Authorize(Roles = "Administrator, Supervisor, Ploeg")]
public class DienstbulletinController : Controller
{
    private readonly DienstbulletinAppContext _db = new DienstbulletinAppContext();

    // GET: Dienstbulletin
    public ActionResult Index()
    {
        var dienstbulletin = _db.Dienstbulletins.Where(a => a.Deleted == false).Include(d => d.Obp)
            .Include(d => d.Ogp).Include(d => d.Opsteller).Include(d => d.Ploeg).Include(d => d.Rechercheur)
            .Include(d => d.Voertuig);
        var data = dienstbulletin.ToList();
        return View(data.OrderByDescending(a => a.Datum.Date).ThenByDescending(a => a.ID).ToList());
    }

    // GET: Dienstbulletin/Details/5
    public ActionResult Details(int? id)
    {
        if (id == null) return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        var dienstbulletin = _db.Dienstbulletins.Find(id);
        if (dienstbulletin == null) return HttpNotFound();
        return View(dienstbulletin);
    }

    // GET: Dienstbulletin/Create
    public ActionResult Create()
    {            
       Dienstbulletin dienstbulletin = new Dienstbulletin ()

        return View(dienstbulletin);
    }
}

在路线中声明如下

 var settings = new FriendlyUrlSettings {AutoRedirectMode = RedirectMode.Permanent};
        routes.EnableFriendlyUrls(settings);

        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");


        routes.MapRoute(
            "login", // Route name
            "Gebruiker/Login", // URL with parameters
            new { controller = "Gebruiker", action = "Login", id = UrlParameter.Optional }
         );

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

关于这个控制器可能有什么问题的任何想法?

在服务器上的事件日志中未找到任何消息或提示。

标签: asp.net-mvciiscontroller

解决方案


500 错误是未处理的异常或配置错误。我猜您的数据库查询之一或创建您的 DienstbulletinAppContext 会引发异常。您可以在几个地方寻找它。

在开发过程中,您可以打开浏览器调试工具并查看失败请求的响应。通常响应是显示执行消息的 HTML 页面。

在服务器上,您可以查看 IIS 日志。

在此处输入图像描述 您应该在由 W3SVC 站点 ID 号命名的文件夹中找到您的日志。在那里你可以看到一个描述发生了什么的子代码。但是您不会看到异常详细信息。

导致 500 错误的异常主要是 Windows 应用程序事件日志中的警告。我第一次有 500 时,我只是在日志中查找错误,而不是警告。你检查警告了吗?


推荐阅读