【问题标题】:Asp.net MVC4 - Internal Server 500 error - Only when publishedAsp.net MVC4 - 内部服务器 500 错误 - 仅在发布时
【发布时间】:2012-03-22 06:55:22
【问题描述】:

刚刚完成了我的第一个 mvc4 应用程序。一切都很好,直到我部署它并得到: 500内部服务器错误。您要查找的资源有问题,无法显示。 每次我尝试调用 /Account/Register 或 /Account/Login 控制器时:

我在 firefox 控制台和 fiddler 中窥探过。我在那里没有找到任何有用的东西,但话说回来,我真的不知道我什至应该寻找什么。

其他一些帖子说要检查服务器日志,但这本身就是一个问题,因为当我尝试下载、移动、查看或删除最新的日志文件时,我收到诸如“文件传输失败”、“550 无法访问文件”之类的错误", "500 删除文件失败".

我不知道还能做什么,请一些建议。 下面是一些调用登录控制器的代码。我不会发布注册版本,因为它们似乎相关。

Ajax 调用:

$.ajax({
                    url: "/Account/Login",
                    type: "POST",
                    data: $('#loginForm').serialize(),
                    success: function (resultData) {
                        if (resultData.ok) {
                            ...unrelated stuff...has call to resultData.message
                        }
                    }
                });

登录控制器:

    [AllowAnonymous]
    [HttpPost]
    public ActionResult Login(LoginModel model)
    {

        if (ModelState.IsValid)
        {
            if (Membership.ValidateUser(model.UserName, model.Password))
            {
                FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
                return Json(new { ok = true, message = "Login successful." });
            }
            else
            {
                return Json(new { ok = false, message = "The username or password you entered is invalid. Please try again." });
            }
        }

        // If we got this far, something failed, redisplay form
        return View(model);
    }

这一切看起来都很标准,所以我真的不知道它可能是什么或如何诊断

【问题讨论】:

    标签: asp.net internal


    【解决方案1】:

    我遇到了类似的问题,这是由于某些引用的 DLL 不存在于服务器的 GAC 中(仅在安装了 MVC4 beta 的开发机器上)。解决方案是在编译之前将这些依赖项设置为“复制到本地”

    * System.Web.Mvc
    * System.Web.Routing
    * System.Web.Abstractions
    * Microsoft.Web.Infrastructure
    * System.Web.Razor
    * System.Web.WebPages.Deployment
    * System.Web.WebPages.Razor
    

    如果您遇到同样的问题,这些链接将帮助您解决问题:

    Could not load file or assembly 'System.Web.Mvc'

    http://haacked.com/archive/2008/11/03/bin-deploy-aspnetmvc.aspx

    【讨论】:

    • 感谢您的回复,但这对我不起作用。我将所有这些 dll(当然还有其他一些)复制到服务器上的 wwwroot/bin 文件夹中,但这并没有解决问题。由于只有注册和登录控制器不起作用,其他原因我怀疑我的数据库没有被复制。当我使用 VS 发布功能并且在服务器上的任何地方都看不到数据库时,没有包含 App_Data 文件的选项。这可能是我现在要研究的问题,因为我以前从未做过,但是当然欢迎任何使这可能更容易的 cmets :) 谢谢
    • 您可以编辑您的帖子以包含实际的 500 错误详细信息吗?在浏览器中关闭“友好错误消息”并在 web.config 中启用 customErrors 元素,以便您可以看到实际的错误消息。 msdn.microsoft.com/en-us/library/h0hfz6fc.aspx
    • 我在 web.config 文件中添加了 并关闭了友好的错误消息:错误是一样的,只是:500 - 内部服务器错误。您要查找的资源有问题,无法显示。
    • 这被认为是详细信息还是我做错了什么
    • 其实需要将customErrors设置为“Off”。这应该会导致显示实际的异常,而不是一般的“500 服务器错误”消息。一旦你看到实际的异常,我相信你会知道要修复什么。完成后不要忘记重置此设置,以防止将代码/异常的详细信息传递给用户。总帐
    猜你喜欢
    • 2013-07-04
    • 2018-10-16
    • 1970-01-01
    • 2023-03-25
    • 2017-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多