0

我从哪里开始调试 jQuery/Javascript 函数,它在我的服务器上调用 API,当它在本地运行良好时 - 但是当上传到服务器时,只返回 HTTP500 错误?

我试过 fiddler,但它在 JSON/XML 中什么也没显示——它唯一显示的是在 Auth 部分:

提琴手图片

服务器事件日志在我尝试测试的时候没有显示任何内容。

Fiddler 响应是否表明有任何问题,或者任何人都可以建议我可能需要在事件查看器中打开什么来捕获这 500 个错误可能是什么?

谢谢你的帮助,

标记

4

2 回答 2

1

尝试添加一些围绕 javascript 调用并在回调函数中的 console.log() 消息。这样做会让您知道故障发生在哪里。调试 javascript 时,我通常坚持使用 Chrome 开发人员工具和 Firebug 中的网络选项卡。通过使用这些工具,您可以从 console.log() 消息中获得正确的输出。

具体来说,在您的 jquery 结果处理程序中,我将添加以下内容:

console.log(resultObject);

这将输出整个对象树,以便您可以从 Firebug 或 Chrome 开发人员工具中深入了解内容......如果需要。

如果出于某种原因,您反对在代码中乱扔日志消息,那么请检查在您从服务器进行测试时调用是否实际发生。您应该通过在 Fiddler 或基于浏览器的工具中查看您的网络流量来了解 javascript 是否正在发送 HTTP 请求。如果请求没有发生,那么您的代码在调用之前就中断了,在您的情况下,这可能意味着环境差异。

是否正确引用和配置了所有内容?检查由于配置不当或错误引用而导致的空值。

于 2013-04-02T21:01:33.720 回答
1

500 is a "server error", which basically means something (could be almost anything) broke at the server side.

I would recommend:

  1. Investigate your options for exception handling: http://www.asp.net/web-api/overview/web-api-routing-and-actions/exception-handling
  2. Consider setting the IncludeErrorDetailPolicy to Always, though note that this is a setting that shouldn't be left in-use on a production environment - Error messages returned from Web API method are omitted in non-dev environment
  3. Examine server-side error logging. I'm a big fan of ELMAH. You'll need a little extra effort to get it working properly in Web API - http://blogs.msdn.com/b/webdev/archive/2012/11/16/capturing-unhandled-exceptions-in-asp-net-web-api-s-with-elmah.aspx
于 2013-04-02T21:59:50.363 回答