Asp.net MVC4 - 内部服务器500错误 - 仅在发布时

时间:2012-03-22 06:55:23

标签: asp.net internal

刚刚完成我的第一个mvc4应用程序。一切都很好,直到我部署它,我得到: 500内部服务器错误。您正在查找的资源存在问题,无法显示。 每次我尝试呼叫/帐户/注册或/帐户/登录控制器:

我在firefox控制台和小提琴手里偷窥了一下。我在那里找不到任何有用的东西,但是我再也不知道我甚至应该寻找什么。

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

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

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);
    }

这一切似乎都非常标准,所以我真的不知道它可能是什么或如何诊断

1 个答案:

答案 0 :(得分:4)

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

* 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