【问题标题】:ASP.NET MVC, AJAX POST 500 (Internal Server Error) on one server but not on other two machinesASP.NET MVC,AJAX POST 500(内部服务器错误)在一台服务器上但不在其他两台机器上
【发布时间】:2015-04-06 02:28:51
【问题描述】:

在我们的 ASP.NET MVC 4 Web 应用程序中,我们在登台服务器上收到以下错误。当在客户端通过AJAX 对操作方法进行POST 调用时,我们会通过 Google Chrome 调试工具窗口捕获此错误:

POST http://StagingServerURL/ControllerName/ActionMethodName 500 (Internal Server Error)

应用程序以完全相同的代码和数据库部署在开发计算机和生产服务器以及it works on both of these two machines just fine 上。三台机器的设置如下:

  • 开发机器:Windows 7 Professional、IIS 7.5、SQL Server 2008 R2
  • 生产:Windows Server 8 R2、IIS 7.5、SQL Server 2008 R2
  • 暂存:Windows Server 2012 R2 标准、IIS 8.5、SQL Server 2008 R2

动作方法

public ActionResult SaveData(FormCollection collection)
{
    try
    {
        ...code to insert data to SQL Server Db...
        }
        db.SubmitChanges();
        System.IO.File.Copy(Server.MapPath("~/FolderName/File1Name.txt,Server.MapPath("~/FolderName/File2Name.txt,true);

        return Json("");
    }
    catch (Exception e)
    {
        throw e;
    }
}

AJAX 调用

$('#submitButton').click(function () {
    var data = $('form').serializeObject();
    $.ajax({
        url: '@Url.Action("SaveData")', type: "POST",
        data: data,
        success: function (data) {
            $('#Status').show().fadeOut(8000);
        },
        error: function (data) {
            alert("An error occured");
        }
    });
});

【问题讨论】:

  • 文件的复制立即引起了我的注意,我想到了权限。您还没有提供有关调试的任何详细信息。如果您注释掉文件复制,问题是否仍然存在?返回的实际错误是什么?内部 500 并没有给我们太多的工作。尝试输出更多细节。
  • 暂存服务器未安装 Visual Studio,其他服务器确实存在问题。如何通过 Google Chrome 开发工具获取详细的错误消息?
  • 页面可以输出更多信息。不仅仅是错误 500。
  • @RowanFreeman,我不知道如何使用 Google Chrome 开发工具在客户端显示服务器端错误。我需要在 Web.config 文件中进行一些设置以在 Chrome 调试工具中获取服务器端错误吗?如果是这样,那将是什么设置?

标签: ajax json asp.net-mvc iis asp.net-ajax


【解决方案1】:

解决方案 1: 将 500 内部服务器错误的错误页面中的 IIS 8.5 设置更改为详细错误消息,而不是本地请求的详细错误和远程请求的自定义错误页面。

我希望这可以解决。

解决方案 2: 从代码中,我假设您缺少此 JSON("",JsonRequestBehavior.AllowGet)

【讨论】:

  • 你会让你的答案更复杂吗?
  • 为了显示来自应用程序的详细错误消息,我们需要更改 IIS 8.5 中的设置。默认情况下,IIS 7 的设置与 IIS 8.5 不同。我遇到了同样的问题正如罗文弗里曼所面临的那样。所以我认为这会解决问题。
猜你喜欢
  • 2020-12-11
  • 1970-01-01
  • 1970-01-01
  • 2019-05-15
  • 2017-10-14
  • 1970-01-01
  • 1970-01-01
  • 2018-02-04
  • 2018-10-10
相关资源
最近更新 更多